//! Utility macros.

//immediate value: -4096:4088
macro_rules! constify_imm_s13 {
    ($imm_s13:expr, $expand:ident) => {
        #[allow(overflowing_literals)]
        match ($imm_s13) & 0b1_1111_1111_1111 {
            0 => $expand!(0),
            8 => $expand!(8),
            16 => $expand!(16),
            24 => $expand!(24),
            32 => $expand!(32),
            40 => $expand!(40),
            48 => $expand!(48),
            56 => $expand!(56),
            64 => $expand!(64),
            72 => $expand!(72),
            80 => $expand!(80),
            88 => $expand!(88),
            96 => $expand!(96),
            104 => $expand!(104),
            112 => $expand!(112),
            120 => $expand!(120),
            128 => $expand!(128),
            136 => $expand!(136),
            144 => $expand!(144),
            152 => $expand!(152),
            160 => $expand!(160),
            168 => $expand!(168),
            176 => $expand!(176),
            184 => $expand!(184),
            192 => $expand!(192),
            200 => $expand!(200),
            208 => $expand!(208),
            216 => $expand!(216),
            224 => $expand!(224),
            232 => $expand!(232),
            240 => $expand!(240),
            248 => $expand!(248),
            256 => $expand!(256),
            264 => $expand!(264),
            272 => $expand!(272),
            280 => $expand!(280),
            288 => $expand!(288),
            296 => $expand!(296),
            304 => $expand!(304),
            312 => $expand!(312),
            320 => $expand!(320),
            328 => $expand!(328),
            336 => $expand!(336),
            344 => $expand!(344),
            352 => $expand!(352),
            360 => $expand!(360),
            368 => $expand!(368),
            376 => $expand!(376),
            384 => $expand!(384),
            392 => $expand!(392),
            400 => $expand!(400),
            408 => $expand!(408),
            416 => $expand!(416),
            424 => $expand!(424),
            432 => $expand!(432),
            440 => $expand!(440),
            448 => $expand!(448),
            456 => $expand!(456),
            464 => $expand!(464),
            472 => $expand!(472),
            480 => $expand!(480),
            488 => $expand!(488),
            496 => $expand!(496),
            504 => $expand!(504),
            512 => $expand!(512),
            520 => $expand!(520),
            528 => $expand!(528),
            536 => $expand!(536),
            544 => $expand!(544),
            552 => $expand!(552),
            560 => $expand!(560),
            568 => $expand!(568),
            576 => $expand!(576),
            584 => $expand!(584),
            592 => $expand!(592),
            600 => $expand!(600),
            608 => $expand!(608),
            616 => $expand!(616),
            624 => $expand!(624),
            632 => $expand!(632),
            640 => $expand!(640),
            648 => $expand!(648),
            656 => $expand!(656),
            664 => $expand!(664),
            672 => $expand!(672),
            680 => $expand!(680),
            688 => $expand!(688),
            696 => $expand!(696),
            704 => $expand!(704),
            712 => $expand!(712),
            720 => $expand!(720),
            728 => $expand!(728),
            736 => $expand!(736),
            744 => $expand!(744),
            752 => $expand!(752),
            760 => $expand!(760),
            768 => $expand!(768),
            776 => $expand!(776),
            784 => $expand!(784),
            792 => $expand!(792),
            800 => $expand!(800),
            808 => $expand!(808),
            816 => $expand!(816),
            824 => $expand!(824),
            832 => $expand!(832),
            840 => $expand!(840),
            848 => $expand!(848),
            856 => $expand!(856),
            864 => $expand!(864),
            872 => $expand!(872),
            880 => $expand!(880),
            888 => $expand!(888),
            896 => $expand!(896),
            904 => $expand!(904),
            912 => $expand!(912),
            920 => $expand!(920),
            928 => $expand!(928),
            936 => $expand!(936),
            944 => $expand!(944),
            952 => $expand!(952),
            960 => $expand!(960),
            968 => $expand!(968),
            976 => $expand!(976),
            984 => $expand!(984),
            992 => $expand!(992),
            1000 => $expand!(1000),
            1008 => $expand!(1008),
            1016 => $expand!(1016),
            1024 => $expand!(1024),
            1032 => $expand!(1032),
            1040 => $expand!(1040),
            1048 => $expand!(1048),
            1056 => $expand!(1056),
            1064 => $expand!(1064),
            1072 => $expand!(1072),
            1080 => $expand!(1080),
            1088 => $expand!(1088),
            1096 => $expand!(1096),
            1104 => $expand!(1104),
            1112 => $expand!(1112),
            1120 => $expand!(1120),
            1128 => $expand!(1128),
            1136 => $expand!(1136),
            1144 => $expand!(1144),
            1152 => $expand!(1152),
            1160 => $expand!(1160),
            1168 => $expand!(1168),
            1176 => $expand!(1176),
            1184 => $expand!(1184),
            1192 => $expand!(1192),
            1200 => $expand!(1200),
            1208 => $expand!(1208),
            1216 => $expand!(1216),
            1224 => $expand!(1224),
            1232 => $expand!(1232),
            1240 => $expand!(1240),
            1248 => $expand!(1248),
            1256 => $expand!(1256),
            1264 => $expand!(1264),
            1272 => $expand!(1272),
            1280 => $expand!(1280),
            1288 => $expand!(1288),
            1296 => $expand!(1296),
            1304 => $expand!(1304),
            1312 => $expand!(1312),
            1320 => $expand!(1320),
            1328 => $expand!(1328),
            1336 => $expand!(1336),
            1344 => $expand!(1344),
            1352 => $expand!(1352),
            1360 => $expand!(1360),
            1368 => $expand!(1368),
            1376 => $expand!(1376),
            1384 => $expand!(1384),
            1392 => $expand!(1392),
            1400 => $expand!(1400),
            1408 => $expand!(1408),
            1416 => $expand!(1416),
            1424 => $expand!(1424),
            1432 => $expand!(1432),
            1440 => $expand!(1440),
            1448 => $expand!(1448),
            1456 => $expand!(1456),
            1464 => $expand!(1464),
            1472 => $expand!(1472),
            1480 => $expand!(1480),
            1488 => $expand!(1488),
            1496 => $expand!(1496),
            1504 => $expand!(1504),
            1512 => $expand!(1512),
            1520 => $expand!(1520),
            1528 => $expand!(1528),
            1536 => $expand!(1536),
            1544 => $expand!(1544),
            1552 => $expand!(1552),
            1560 => $expand!(1560),
            1568 => $expand!(1568),
            1576 => $expand!(1576),
            1584 => $expand!(1584),
            1592 => $expand!(1592),
            1600 => $expand!(1600),
            1608 => $expand!(1608),
            1616 => $expand!(1616),
            1624 => $expand!(1624),
            1632 => $expand!(1632),
            1640 => $expand!(1640),
            1648 => $expand!(1648),
            1656 => $expand!(1656),
            1664 => $expand!(1664),
            1672 => $expand!(1672),
            1680 => $expand!(1680),
            1688 => $expand!(1688),
            1696 => $expand!(1696),
            1704 => $expand!(1704),
            1712 => $expand!(1712),
            1720 => $expand!(1720),
            1728 => $expand!(1728),
            1736 => $expand!(1736),
            1744 => $expand!(1744),
            1752 => $expand!(1752),
            1760 => $expand!(1760),
            1768 => $expand!(1768),
            1776 => $expand!(1776),
            1784 => $expand!(1784),
            1792 => $expand!(1792),
            1800 => $expand!(1800),
            1808 => $expand!(1808),
            1816 => $expand!(1816),
            1824 => $expand!(1824),
            1832 => $expand!(1832),
            1840 => $expand!(1840),
            1848 => $expand!(1848),
            1856 => $expand!(1856),
            1864 => $expand!(1864),
            1872 => $expand!(1872),
            1880 => $expand!(1880),
            1888 => $expand!(1888),
            1896 => $expand!(1896),
            1904 => $expand!(1904),
            1912 => $expand!(1912),
            1920 => $expand!(1920),
            1928 => $expand!(1928),
            1936 => $expand!(1936),
            1944 => $expand!(1944),
            1952 => $expand!(1952),
            1960 => $expand!(1960),
            1968 => $expand!(1968),
            1976 => $expand!(1976),
            1984 => $expand!(1984),
            1992 => $expand!(1992),
            2000 => $expand!(2000),
            2008 => $expand!(2008),
            2016 => $expand!(2016),
            2024 => $expand!(2024),
            2032 => $expand!(2032),
            2040 => $expand!(2040),
            2048 => $expand!(2048),
            2056 => $expand!(2056),
            2064 => $expand!(2064),
            2072 => $expand!(2072),
            2080 => $expand!(2080),
            2088 => $expand!(2088),
            2096 => $expand!(2096),
            2104 => $expand!(2104),
            2112 => $expand!(2112),
            2120 => $expand!(2120),
            2128 => $expand!(2128),
            2136 => $expand!(2136),
            2144 => $expand!(2144),
            2152 => $expand!(2152),
            2160 => $expand!(2160),
            2168 => $expand!(2168),
            2176 => $expand!(2176),
            2184 => $expand!(2184),
            2192 => $expand!(2192),
            2200 => $expand!(2200),
            2208 => $expand!(2208),
            2216 => $expand!(2216),
            2224 => $expand!(2224),
            2232 => $expand!(2232),
            2240 => $expand!(2240),
            2248 => $expand!(2248),
            2256 => $expand!(2256),
            2264 => $expand!(2264),
            2272 => $expand!(2272),
            2280 => $expand!(2280),
            2288 => $expand!(2288),
            2296 => $expand!(2296),
            2304 => $expand!(2304),
            2312 => $expand!(2312),
            2320 => $expand!(2320),
            2328 => $expand!(2328),
            2336 => $expand!(2336),
            2344 => $expand!(2344),
            2352 => $expand!(2352),
            2360 => $expand!(2360),
            2368 => $expand!(2368),
            2376 => $expand!(2376),
            2384 => $expand!(2384),
            2392 => $expand!(2392),
            2400 => $expand!(2400),
            2408 => $expand!(2408),
            2416 => $expand!(2416),
            2424 => $expand!(2424),
            2432 => $expand!(2432),
            2440 => $expand!(2440),
            2448 => $expand!(2448),
            2456 => $expand!(2456),
            2464 => $expand!(2464),
            2472 => $expand!(2472),
            2480 => $expand!(2480),
            2488 => $expand!(2488),
            2496 => $expand!(2496),
            2504 => $expand!(2504),
            2512 => $expand!(2512),
            2520 => $expand!(2520),
            2528 => $expand!(2528),
            2536 => $expand!(2536),
            2544 => $expand!(2544),
            2552 => $expand!(2552),
            2560 => $expand!(2560),
            2568 => $expand!(2568),
            2576 => $expand!(2576),
            2584 => $expand!(2584),
            2592 => $expand!(2592),
            2600 => $expand!(2600),
            2608 => $expand!(2608),
            2616 => $expand!(2616),
            2624 => $expand!(2624),
            2632 => $expand!(2632),
            2640 => $expand!(2640),
            2648 => $expand!(2648),
            2656 => $expand!(2656),
            2664 => $expand!(2664),
            2672 => $expand!(2672),
            2680 => $expand!(2680),
            2688 => $expand!(2688),
            2696 => $expand!(2696),
            2704 => $expand!(2704),
            2712 => $expand!(2712),
            2720 => $expand!(2720),
            2728 => $expand!(2728),
            2736 => $expand!(2736),
            2744 => $expand!(2744),
            2752 => $expand!(2752),
            2760 => $expand!(2760),
            2768 => $expand!(2768),
            2776 => $expand!(2776),
            2784 => $expand!(2784),
            2792 => $expand!(2792),
            2800 => $expand!(2800),
            2808 => $expand!(2808),
            2816 => $expand!(2816),
            2824 => $expand!(2824),
            2832 => $expand!(2832),
            2840 => $expand!(2840),
            2848 => $expand!(2848),
            2856 => $expand!(2856),
            2864 => $expand!(2864),
            2872 => $expand!(2872),
            2880 => $expand!(2880),
            2888 => $expand!(2888),
            2896 => $expand!(2896),
            2904 => $expand!(2904),
            2912 => $expand!(2912),
            2920 => $expand!(2920),
            2928 => $expand!(2928),
            2936 => $expand!(2936),
            2944 => $expand!(2944),
            2952 => $expand!(2952),
            2960 => $expand!(2960),
            2968 => $expand!(2968),
            2976 => $expand!(2976),
            2984 => $expand!(2984),
            2992 => $expand!(2992),
            3000 => $expand!(3000),
            3008 => $expand!(3008),
            3016 => $expand!(3016),
            3024 => $expand!(3024),
            3032 => $expand!(3032),
            3040 => $expand!(3040),
            3048 => $expand!(3048),
            3056 => $expand!(3056),
            3064 => $expand!(3064),
            3072 => $expand!(3072),
            3080 => $expand!(3080),
            3088 => $expand!(3088),
            3096 => $expand!(3096),
            3104 => $expand!(3104),
            3112 => $expand!(3112),
            3120 => $expand!(3120),
            3128 => $expand!(3128),
            3136 => $expand!(3136),
            3144 => $expand!(3144),
            3152 => $expand!(3152),
            3160 => $expand!(3160),
            3168 => $expand!(3168),
            3176 => $expand!(3176),
            3184 => $expand!(3184),
            3192 => $expand!(3192),
            3200 => $expand!(3200),
            3208 => $expand!(3208),
            3216 => $expand!(3216),
            3224 => $expand!(3224),
            3232 => $expand!(3232),
            3240 => $expand!(3240),
            3248 => $expand!(3248),
            3256 => $expand!(3256),
            3264 => $expand!(3264),
            3272 => $expand!(3272),
            3280 => $expand!(3280),
            3288 => $expand!(3288),
            3296 => $expand!(3296),
            3304 => $expand!(3304),
            3312 => $expand!(3312),
            3320 => $expand!(3320),
            3328 => $expand!(3328),
            3336 => $expand!(3336),
            3344 => $expand!(3344),
            3352 => $expand!(3352),
            3360 => $expand!(3360),
            3368 => $expand!(3368),
            3376 => $expand!(3376),
            3384 => $expand!(3384),
            3392 => $expand!(3392),
            3400 => $expand!(3400),
            3408 => $expand!(3408),
            3416 => $expand!(3416),
            3424 => $expand!(3424),
            3432 => $expand!(3432),
            3440 => $expand!(3440),
            3448 => $expand!(3448),
            3456 => $expand!(3456),
            3464 => $expand!(3464),
            3472 => $expand!(3472),
            3480 => $expand!(3480),
            3488 => $expand!(3488),
            3496 => $expand!(3496),
            3504 => $expand!(3504),
            3512 => $expand!(3512),
            3520 => $expand!(3520),
            3528 => $expand!(3528),
            3536 => $expand!(3536),
            3544 => $expand!(3544),
            3552 => $expand!(3552),
            3560 => $expand!(3560),
            3568 => $expand!(3568),
            3576 => $expand!(3576),
            3584 => $expand!(3584),
            3592 => $expand!(3592),
            3600 => $expand!(3600),
            3608 => $expand!(3608),
            3616 => $expand!(3616),
            3624 => $expand!(3624),
            3632 => $expand!(3632),
            3640 => $expand!(3640),
            3648 => $expand!(3648),
            3656 => $expand!(3656),
            3664 => $expand!(3664),
            3672 => $expand!(3672),
            3680 => $expand!(3680),
            3688 => $expand!(3688),
            3696 => $expand!(3696),
            3704 => $expand!(3704),
            3712 => $expand!(3712),
            3720 => $expand!(3720),
            3728 => $expand!(3728),
            3736 => $expand!(3736),
            3744 => $expand!(3744),
            3752 => $expand!(3752),
            3760 => $expand!(3760),
            3768 => $expand!(3768),
            3776 => $expand!(3776),
            3784 => $expand!(3784),
            3792 => $expand!(3792),
            3700 => $expand!(3700),
            3808 => $expand!(3808),
            3816 => $expand!(3816),
            3824 => $expand!(3824),
            3832 => $expand!(3832),
            3840 => $expand!(3840),
            3848 => $expand!(3848),
            3856 => $expand!(3856),
            3864 => $expand!(3864),
            3872 => $expand!(3872),
            3880 => $expand!(3880),
            3888 => $expand!(3888),
            3896 => $expand!(3896),
            3904 => $expand!(3904),
            3912 => $expand!(3912),
            3920 => $expand!(3920),
            3928 => $expand!(3928),
            3936 => $expand!(3936),
            3944 => $expand!(3944),
            3952 => $expand!(3952),
            3960 => $expand!(3960),
            3968 => $expand!(3968),
            3976 => $expand!(3976),
            3984 => $expand!(3984),
            3992 => $expand!(3992),
            4000 => $expand!(4000),
            4008 => $expand!(4008),
            4016 => $expand!(4016),
            4024 => $expand!(4024),
            4032 => $expand!(4032),
            4040 => $expand!(4040),
            4048 => $expand!(4048),
            4056 => $expand!(4056),
            4064 => $expand!(4064),
            4072 => $expand!(4072),
            4080 => $expand!(4080),
            4096 => $expand!(-4096),
            4104 => $expand!(-4088),
            4112 => $expand!(-4080),
            4120 => $expand!(-4072),
            4128 => $expand!(-4064),
            4136 => $expand!(-4056),
            4144 => $expand!(-4048),
            4152 => $expand!(-4040),
            4160 => $expand!(-4032),
            4168 => $expand!(-4024),
            4176 => $expand!(-4016),
            4184 => $expand!(-4008),
            4192 => $expand!(-4000),
            4200 => $expand!(-3992),
            4208 => $expand!(-3984),
            4216 => $expand!(-3976),
            4224 => $expand!(-3968),
            4232 => $expand!(-3960),
            4240 => $expand!(-3952),
            4248 => $expand!(-3944),
            4256 => $expand!(-3936),
            4264 => $expand!(-3928),
            4272 => $expand!(-3920),
            4280 => $expand!(-3912),
            4288 => $expand!(-3904),
            4296 => $expand!(-3896),
            4304 => $expand!(-3888),
            4312 => $expand!(-3880),
            4320 => $expand!(-3872),
            4328 => $expand!(-3864),
            4336 => $expand!(-3856),
            4344 => $expand!(-3848),
            4352 => $expand!(-3840),
            4360 => $expand!(-3832),
            4368 => $expand!(-3824),
            4376 => $expand!(-3816),
            4384 => $expand!(-3808),
            4392 => $expand!(-3800),
            4400 => $expand!(-3792),
            4408 => $expand!(-3784),
            4416 => $expand!(-3776),
            4424 => $expand!(-3768),
            4432 => $expand!(-3760),
            4440 => $expand!(-3752),
            4448 => $expand!(-3744),
            4456 => $expand!(-3736),
            4464 => $expand!(-3728),
            4472 => $expand!(-3720),
            4480 => $expand!(-3712),
            4488 => $expand!(-3704),
            4496 => $expand!(-3696),
            4504 => $expand!(-3688),
            4512 => $expand!(-3680),
            4520 => $expand!(-3672),
            4528 => $expand!(-3664),
            4536 => $expand!(-3656),
            4544 => $expand!(-3648),
            4552 => $expand!(-3640),
            4560 => $expand!(-3632),
            4568 => $expand!(-3624),
            4576 => $expand!(-3616),
            4584 => $expand!(-3608),
            4592 => $expand!(-3600),
            4600 => $expand!(-3592),
            4608 => $expand!(-3584),
            4616 => $expand!(-3576),
            4624 => $expand!(-3568),
            4632 => $expand!(-3560),
            4640 => $expand!(-3552),
            4648 => $expand!(-3544),
            4656 => $expand!(-3536),
            4664 => $expand!(-3528),
            4672 => $expand!(-3520),
            4680 => $expand!(-3512),
            4688 => $expand!(-3504),
            4696 => $expand!(-3496),
            4704 => $expand!(-3488),
            4712 => $expand!(-3480),
            4720 => $expand!(-3472),
            4728 => $expand!(-3464),
            4736 => $expand!(-3456),
            4744 => $expand!(-3448),
            4752 => $expand!(-3440),
            4760 => $expand!(-3432),
            4768 => $expand!(-3424),
            4776 => $expand!(-3416),
            4784 => $expand!(-3408),
            4792 => $expand!(-3400),
            4800 => $expand!(-3392),
            4808 => $expand!(-3384),
            4816 => $expand!(-3376),
            4824 => $expand!(-3368),
            4832 => $expand!(-3360),
            4840 => $expand!(-3352),
            4848 => $expand!(-3344),
            4856 => $expand!(-3336),
            4864 => $expand!(-3328),
            4872 => $expand!(-3320),
            4880 => $expand!(-3312),
            4888 => $expand!(-3304),
            4896 => $expand!(-3296),
            4904 => $expand!(-3288),
            4912 => $expand!(-3280),
            4920 => $expand!(-3272),
            4928 => $expand!(-3264),
            4936 => $expand!(-3256),
            4944 => $expand!(-3248),
            4952 => $expand!(-3240),
            4960 => $expand!(-3232),
            4968 => $expand!(-3224),
            4976 => $expand!(-3216),
            4984 => $expand!(-3208),
            4992 => $expand!(-3200),
            5000 => $expand!(-3192),
            5008 => $expand!(-3184),
            5016 => $expand!(-3176),
            5024 => $expand!(-3168),
            5032 => $expand!(-3160),
            5040 => $expand!(-3152),
            5048 => $expand!(-3144),
            5056 => $expand!(-3136),
            5064 => $expand!(-3128),
            5072 => $expand!(-3120),
            5080 => $expand!(-3112),
            5088 => $expand!(-3104),
            5096 => $expand!(-3096),
            5104 => $expand!(-3088),
            5112 => $expand!(-3080),
            5120 => $expand!(-3072),
            5128 => $expand!(-3064),
            5136 => $expand!(-3056),
            5144 => $expand!(-3048),
            5152 => $expand!(-3040),
            5160 => $expand!(-3032),
            5168 => $expand!(-3024),
            5176 => $expand!(-3016),
            5184 => $expand!(-3008),
            5192 => $expand!(-3000),
            5200 => $expand!(-2992),
            5208 => $expand!(-2984),
            5216 => $expand!(-2976),
            5224 => $expand!(-2968),
            5232 => $expand!(-2960),
            5240 => $expand!(-2952),
            5248 => $expand!(-2944),
            5256 => $expand!(-2936),
            5264 => $expand!(-2928),
            5272 => $expand!(-2920),
            5280 => $expand!(-2912),
            5288 => $expand!(-2904),
            5296 => $expand!(-2896),
            5304 => $expand!(-2888),
            5312 => $expand!(-2880),
            5320 => $expand!(-2872),
            5328 => $expand!(-2864),
            5336 => $expand!(-2856),
            5344 => $expand!(-2848),
            5352 => $expand!(-2840),
            5360 => $expand!(-2832),
            5368 => $expand!(-2824),
            5376 => $expand!(-2816),
            5384 => $expand!(-2808),
            5392 => $expand!(-2800),
            5400 => $expand!(-2792),
            5408 => $expand!(-2784),
            5416 => $expand!(-2776),
            5424 => $expand!(-2768),
            5432 => $expand!(-2760),
            5440 => $expand!(-2752),
            5448 => $expand!(-2744),
            5456 => $expand!(-2736),
            5464 => $expand!(-2728),
            5472 => $expand!(-2720),
            5480 => $expand!(-2712),
            5488 => $expand!(-2704),
            5496 => $expand!(-2696),
            5504 => $expand!(-2688),
            5512 => $expand!(-2680),
            5520 => $expand!(-2672),
            5528 => $expand!(-2664),
            5536 => $expand!(-2656),
            5544 => $expand!(-2648),
            5552 => $expand!(-2640),
            5560 => $expand!(-2632),
            5568 => $expand!(-2624),
            5576 => $expand!(-2616),
            5584 => $expand!(-2608),
            5592 => $expand!(-2600),
            5600 => $expand!(-2592),
            5608 => $expand!(-2584),
            5616 => $expand!(-2576),
            5624 => $expand!(-2568),
            5632 => $expand!(-2560),
            5640 => $expand!(-2552),
            5648 => $expand!(-2544),
            5656 => $expand!(-2536),
            5664 => $expand!(-2528),
            5672 => $expand!(-2520),
            5680 => $expand!(-2512),
            5688 => $expand!(-2504),
            5696 => $expand!(-2496),
            5704 => $expand!(-2488),
            5712 => $expand!(-2480),
            5720 => $expand!(-2472),
            5728 => $expand!(-2464),
            5736 => $expand!(-2456),
            5744 => $expand!(-2448),
            5752 => $expand!(-2440),
            5760 => $expand!(-2432),
            5768 => $expand!(-2424),
            5776 => $expand!(-2416),
            5784 => $expand!(-2408),
            5792 => $expand!(-2400),
            5800 => $expand!(-2392),
            5808 => $expand!(-2384),
            5816 => $expand!(-2376),
            5824 => $expand!(-2368),
            5832 => $expand!(-2360),
            5840 => $expand!(-2352),
            5848 => $expand!(-2344),
            5856 => $expand!(-2336),
            5864 => $expand!(-2328),
            5872 => $expand!(-2320),
            5880 => $expand!(-2312),
            5888 => $expand!(-2304),
            5896 => $expand!(-2296),
            5904 => $expand!(-2288),
            5912 => $expand!(-2280),
            5920 => $expand!(-2272),
            5928 => $expand!(-2264),
            5936 => $expand!(-2256),
            5944 => $expand!(-2248),
            5952 => $expand!(-2240),
            5960 => $expand!(-2232),
            5968 => $expand!(-2224),
            5976 => $expand!(-2216),
            5984 => $expand!(-2208),
            5992 => $expand!(-2200),
            6000 => $expand!(-2192),
            6008 => $expand!(-2184),
            6016 => $expand!(-2176),
            6024 => $expand!(-2168),
            6032 => $expand!(-2160),
            6040 => $expand!(-2152),
            6048 => $expand!(-2144),
            6056 => $expand!(-2136),
            6064 => $expand!(-2128),
            6072 => $expand!(-2120),
            6080 => $expand!(-2112),
            6088 => $expand!(-2104),
            6096 => $expand!(-2096),
            6104 => $expand!(-2088),
            6112 => $expand!(-2080),
            6120 => $expand!(-2072),
            6128 => $expand!(-2064),
            6136 => $expand!(-2056),
            6144 => $expand!(-2048),
            6152 => $expand!(-2040),
            6160 => $expand!(-2032),
            6168 => $expand!(-2024),
            6176 => $expand!(-2016),
            6184 => $expand!(-2008),
            6192 => $expand!(-2000),
            6200 => $expand!(-1992),
            6208 => $expand!(-1984),
            6216 => $expand!(-1976),
            6224 => $expand!(-1968),
            6232 => $expand!(-1960),
            6240 => $expand!(-1952),
            6248 => $expand!(-1944),
            6256 => $expand!(-1936),
            6264 => $expand!(-1928),
            6272 => $expand!(-1920),
            6280 => $expand!(-1912),
            6288 => $expand!(-1904),
            6296 => $expand!(-1896),
            6304 => $expand!(-1888),
            6312 => $expand!(-1880),
            6320 => $expand!(-1872),
            6328 => $expand!(-1864),
            6336 => $expand!(-1856),
            6344 => $expand!(-1848),
            6352 => $expand!(-1840),
            6360 => $expand!(-1832),
            6368 => $expand!(-1824),
            6376 => $expand!(-1816),
            6384 => $expand!(-1808),
            6392 => $expand!(-1800),
            6400 => $expand!(-1792),
            6408 => $expand!(-1784),
            6416 => $expand!(-1776),
            6424 => $expand!(-1768),
            6432 => $expand!(-1760),
            6440 => $expand!(-1752),
            6448 => $expand!(-1744),
            6456 => $expand!(-1736),
            6464 => $expand!(-1728),
            6472 => $expand!(-1720),
            6480 => $expand!(-1712),
            6488 => $expand!(-1704),
            6496 => $expand!(-1696),
            6504 => $expand!(-1688),
            6512 => $expand!(-1680),
            6520 => $expand!(-1672),
            6528 => $expand!(-1664),
            6536 => $expand!(-1656),
            6544 => $expand!(-1648),
            6552 => $expand!(-1640),
            6560 => $expand!(-1632),
            6568 => $expand!(-1624),
            6576 => $expand!(-1616),
            6584 => $expand!(-1608),
            6592 => $expand!(-1600),
            6600 => $expand!(-1592),
            6608 => $expand!(-1584),
            6616 => $expand!(-1576),
            6624 => $expand!(-1568),
            6632 => $expand!(-1560),
            6640 => $expand!(-1552),
            6648 => $expand!(-1544),
            6656 => $expand!(-1536),
            6664 => $expand!(-1528),
            6672 => $expand!(-1520),
            6680 => $expand!(-1512),
            6688 => $expand!(-1504),
            6696 => $expand!(-1496),
            6704 => $expand!(-1488),
            6712 => $expand!(-1480),
            6720 => $expand!(-1472),
            6728 => $expand!(-1464),
            6736 => $expand!(-1456),
            6744 => $expand!(-1448),
            6752 => $expand!(-1440),
            6760 => $expand!(-1432),
            6768 => $expand!(-1424),
            6776 => $expand!(-1416),
            6784 => $expand!(-1408),
            6792 => $expand!(-1400),
            6800 => $expand!(-1392),
            6808 => $expand!(-1384),
            6816 => $expand!(-1376),
            6824 => $expand!(-1368),
            6832 => $expand!(-1360),
            6840 => $expand!(-1352),
            6848 => $expand!(-1344),
            6856 => $expand!(-1336),
            6864 => $expand!(-1328),
            6872 => $expand!(-1320),
            6880 => $expand!(-1312),
            6888 => $expand!(-1304),
            6896 => $expand!(-1296),
            6904 => $expand!(-1288),
            6912 => $expand!(-1280),
            6920 => $expand!(-1272),
            6928 => $expand!(-1264),
            6936 => $expand!(-1256),
            6944 => $expand!(-1248),
            6952 => $expand!(-1240),
            6960 => $expand!(-1232),
            6968 => $expand!(-1224),
            6976 => $expand!(-1216),
            6984 => $expand!(-1208),
            6992 => $expand!(-1200),
            6900 => $expand!(-1192),
            7008 => $expand!(-1184),
            7016 => $expand!(-1176),
            7024 => $expand!(-1168),
            7032 => $expand!(-1160),
            7040 => $expand!(-1152),
            7048 => $expand!(-1144),
            7056 => $expand!(-1136),
            7064 => $expand!(-1128),
            7072 => $expand!(-1120),
            7080 => $expand!(-1112),
            7088 => $expand!(-1104),
            7096 => $expand!(-1096),
            7104 => $expand!(-1088),
            7112 => $expand!(-1080),
            7120 => $expand!(-1072),
            7128 => $expand!(-1064),
            7136 => $expand!(-1056),
            7144 => $expand!(-1048),
            7152 => $expand!(-1040),
            7160 => $expand!(-1032),
            7168 => $expand!(-1024),
            7176 => $expand!(-1016),
            7184 => $expand!(-1008),
            7192 => $expand!(-1000),
            7100 => $expand!(-992),
            7208 => $expand!(-984),
            7216 => $expand!(-976),
            7224 => $expand!(-968),
            7232 => $expand!(-960),
            7240 => $expand!(-952),
            7248 => $expand!(-944),
            7256 => $expand!(-936),
            7264 => $expand!(-928),
            7272 => $expand!(-920),
            7280 => $expand!(-912),
            7288 => $expand!(-904),
            7296 => $expand!(-896),
            7304 => $expand!(-888),
            7312 => $expand!(-880),
            7320 => $expand!(-872),
            7328 => $expand!(-864),
            7336 => $expand!(-856),
            7344 => $expand!(-848),
            7352 => $expand!(-840),
            7360 => $expand!(-832),
            7368 => $expand!(-824),
            7376 => $expand!(-816),
            7384 => $expand!(-808),
            7392 => $expand!(-800),
            7400 => $expand!(-792),
            7408 => $expand!(-784),
            7416 => $expand!(-776),
            7424 => $expand!(-768),
            7432 => $expand!(-760),
            7440 => $expand!(-752),
            7448 => $expand!(-744),
            7456 => $expand!(-736),
            7464 => $expand!(-728),
            7472 => $expand!(-720),
            7480 => $expand!(-712),
            7488 => $expand!(-704),
            7496 => $expand!(-696),
            7504 => $expand!(-688),
            7512 => $expand!(-680),
            7520 => $expand!(-672),
            7528 => $expand!(-664),
            7536 => $expand!(-656),
            7544 => $expand!(-648),
            7552 => $expand!(-640),
            7560 => $expand!(-632),
            7568 => $expand!(-624),
            7576 => $expand!(-616),
            7584 => $expand!(-608),
            7592 => $expand!(-600),
            7600 => $expand!(-592),
            7608 => $expand!(-584),
            7616 => $expand!(-576),
            7624 => $expand!(-568),
            7632 => $expand!(-560),
            7640 => $expand!(-552),
            7648 => $expand!(-544),
            7656 => $expand!(-536),
            7664 => $expand!(-528),
            7672 => $expand!(-520),
            7680 => $expand!(-512),
            7688 => $expand!(-504),
            7696 => $expand!(-496),
            7704 => $expand!(-488),
            7712 => $expand!(-480),
            7720 => $expand!(-472),
            7728 => $expand!(-464),
            7736 => $expand!(-456),
            7744 => $expand!(-448),
            7752 => $expand!(-440),
            7760 => $expand!(-432),
            7768 => $expand!(-424),
            7776 => $expand!(-416),
            7784 => $expand!(-408),
            7792 => $expand!(-400),
            7700 => $expand!(-392),
            7808 => $expand!(-384),
            7816 => $expand!(-376),
            7824 => $expand!(-368),
            7832 => $expand!(-360),
            7840 => $expand!(-352),
            7848 => $expand!(-344),
            7856 => $expand!(-336),
            7864 => $expand!(-328),
            7872 => $expand!(-320),
            7880 => $expand!(-312),
            7888 => $expand!(-304),
            7896 => $expand!(-296),
            7904 => $expand!(-288),
            7912 => $expand!(-280),
            7920 => $expand!(-272),
            7928 => $expand!(-264),
            7936 => $expand!(-256),
            7944 => $expand!(-248),
            7952 => $expand!(-240),
            7960 => $expand!(-232),
            7968 => $expand!(-224),
            7976 => $expand!(-216),
            7984 => $expand!(-208),
            7992 => $expand!(-200),
            8000 => $expand!(-192),
            8008 => $expand!(-184),
            8016 => $expand!(-176),
            8024 => $expand!(-168),
            8032 => $expand!(-160),
            8040 => $expand!(-152),
            8048 => $expand!(-144),
            8056 => $expand!(-136),
            8064 => $expand!(-128),
            8072 => $expand!(-120),
            8080 => $expand!(-112),
            8088 => $expand!(-104),
            8096 => $expand!(-96),
            8104 => $expand!(-88),
            8112 => $expand!(-80),
            8120 => $expand!(-72),
            8128 => $expand!(-64),
            8136 => $expand!(-56),
            8144 => $expand!(-48),
            8152 => $expand!(-40),
            8160 => $expand!(-32),
            8168 => $expand!(-24),
            8176 => $expand!(-16),
            8184 => $expand!(-8),
            _ => $expand!(4088),
        }
    };
}

//immediate value: -2048:2044
macro_rules! constify_imm_s12 {
    ($imm_s12:expr, $expand:ident) => {
        #[allow(overflowing_literals)]
        match ($imm_s12) & 0b1111_1111_1111 {
            0 => $expand!(0),
            4 => $expand!(4),
            8 => $expand!(8),
            12 => $expand!(12),
            16 => $expand!(16),
            20 => $expand!(20),
            24 => $expand!(24),
            28 => $expand!(28),
            32 => $expand!(32),
            36 => $expand!(36),
            40 => $expand!(40),
            44 => $expand!(44),
            48 => $expand!(48),
            52 => $expand!(52),
            56 => $expand!(56),
            60 => $expand!(60),
            64 => $expand!(64),
            68 => $expand!(68),
            72 => $expand!(72),
            76 => $expand!(76),
            80 => $expand!(80),
            84 => $expand!(84),
            88 => $expand!(88),
            92 => $expand!(92),
            96 => $expand!(96),
            100 => $expand!(100),
            104 => $expand!(104),
            108 => $expand!(108),
            112 => $expand!(112),
            116 => $expand!(116),
            120 => $expand!(120),
            124 => $expand!(124),
            128 => $expand!(128),
            132 => $expand!(132),
            136 => $expand!(136),
            140 => $expand!(140),
            144 => $expand!(144),
            148 => $expand!(148),
            152 => $expand!(152),
            156 => $expand!(156),
            160 => $expand!(160),
            164 => $expand!(164),
            168 => $expand!(168),
            172 => $expand!(172),
            176 => $expand!(176),
            180 => $expand!(180),
            184 => $expand!(184),
            188 => $expand!(188),
            192 => $expand!(192),
            196 => $expand!(196),
            200 => $expand!(200),
            204 => $expand!(204),
            208 => $expand!(208),
            212 => $expand!(212),
            216 => $expand!(216),
            220 => $expand!(220),
            224 => $expand!(224),
            228 => $expand!(228),
            232 => $expand!(232),
            236 => $expand!(236),
            240 => $expand!(240),
            244 => $expand!(244),
            248 => $expand!(248),
            252 => $expand!(252),
            256 => $expand!(256),
            260 => $expand!(260),
            264 => $expand!(264),
            268 => $expand!(268),
            272 => $expand!(272),
            276 => $expand!(276),
            280 => $expand!(280),
            284 => $expand!(284),
            288 => $expand!(288),
            292 => $expand!(292),
            296 => $expand!(296),
            300 => $expand!(300),
            304 => $expand!(304),
            308 => $expand!(308),
            312 => $expand!(312),
            316 => $expand!(316),
            320 => $expand!(320),
            324 => $expand!(324),
            328 => $expand!(328),
            332 => $expand!(332),
            336 => $expand!(336),
            340 => $expand!(340),
            344 => $expand!(344),
            348 => $expand!(348),
            352 => $expand!(352),
            356 => $expand!(356),
            360 => $expand!(360),
            364 => $expand!(364),
            368 => $expand!(368),
            372 => $expand!(372),
            376 => $expand!(376),
            380 => $expand!(380),
            384 => $expand!(384),
            388 => $expand!(388),
            392 => $expand!(392),
            396 => $expand!(396),
            400 => $expand!(400),
            404 => $expand!(404),
            408 => $expand!(408),
            412 => $expand!(412),
            416 => $expand!(416),
            420 => $expand!(420),
            424 => $expand!(424),
            428 => $expand!(428),
            432 => $expand!(432),
            436 => $expand!(436),
            440 => $expand!(440),
            444 => $expand!(444),
            448 => $expand!(448),
            452 => $expand!(452),
            456 => $expand!(456),
            460 => $expand!(460),
            464 => $expand!(464),
            468 => $expand!(468),
            472 => $expand!(472),
            476 => $expand!(476),
            480 => $expand!(480),
            484 => $expand!(484),
            488 => $expand!(488),
            492 => $expand!(492),
            496 => $expand!(496),
            500 => $expand!(500),
            504 => $expand!(504),
            508 => $expand!(508),
            512 => $expand!(512),
            516 => $expand!(516),
            520 => $expand!(520),
            524 => $expand!(524),
            528 => $expand!(528),
            532 => $expand!(532),
            536 => $expand!(536),
            540 => $expand!(540),
            544 => $expand!(544),
            548 => $expand!(548),
            552 => $expand!(552),
            556 => $expand!(556),
            560 => $expand!(560),
            564 => $expand!(564),
            568 => $expand!(568),
            572 => $expand!(572),
            576 => $expand!(576),
            580 => $expand!(580),
            584 => $expand!(584),
            588 => $expand!(588),
            592 => $expand!(592),
            596 => $expand!(596),
            600 => $expand!(600),
            604 => $expand!(604),
            608 => $expand!(608),
            612 => $expand!(612),
            616 => $expand!(616),
            620 => $expand!(620),
            624 => $expand!(624),
            628 => $expand!(628),
            632 => $expand!(632),
            636 => $expand!(636),
            640 => $expand!(640),
            644 => $expand!(644),
            648 => $expand!(648),
            652 => $expand!(652),
            656 => $expand!(656),
            660 => $expand!(660),
            664 => $expand!(664),
            668 => $expand!(668),
            672 => $expand!(672),
            676 => $expand!(676),
            680 => $expand!(680),
            684 => $expand!(684),
            688 => $expand!(688),
            692 => $expand!(692),
            696 => $expand!(696),
            700 => $expand!(700),
            704 => $expand!(704),
            708 => $expand!(708),
            712 => $expand!(712),
            716 => $expand!(716),
            720 => $expand!(720),
            724 => $expand!(724),
            728 => $expand!(728),
            732 => $expand!(732),
            736 => $expand!(736),
            740 => $expand!(740),
            744 => $expand!(744),
            748 => $expand!(748),
            752 => $expand!(752),
            756 => $expand!(756),
            760 => $expand!(760),
            764 => $expand!(764),
            768 => $expand!(768),
            772 => $expand!(772),
            776 => $expand!(776),
            780 => $expand!(780),
            784 => $expand!(784),
            788 => $expand!(788),
            792 => $expand!(792),
            800 => $expand!(800),
            804 => $expand!(804),
            808 => $expand!(808),
            812 => $expand!(812),
            816 => $expand!(816),
            820 => $expand!(820),
            824 => $expand!(824),
            828 => $expand!(828),
            832 => $expand!(832),
            836 => $expand!(836),
            840 => $expand!(840),
            844 => $expand!(844),
            848 => $expand!(848),
            852 => $expand!(852),
            856 => $expand!(856),
            860 => $expand!(860),
            864 => $expand!(864),
            868 => $expand!(868),
            872 => $expand!(872),
            876 => $expand!(876),
            880 => $expand!(880),
            884 => $expand!(884),
            888 => $expand!(888),
            892 => $expand!(892),
            896 => $expand!(896),
            900 => $expand!(900),
            904 => $expand!(904),
            908 => $expand!(908),
            912 => $expand!(912),
            916 => $expand!(916),
            920 => $expand!(920),
            924 => $expand!(924),
            928 => $expand!(928),
            932 => $expand!(932),
            936 => $expand!(936),
            940 => $expand!(940),
            944 => $expand!(944),
            948 => $expand!(948),
            952 => $expand!(952),
            956 => $expand!(956),
            960 => $expand!(960),
            964 => $expand!(964),
            968 => $expand!(968),
            972 => $expand!(972),
            976 => $expand!(976),
            980 => $expand!(980),
            984 => $expand!(984),
            988 => $expand!(988),
            992 => $expand!(992),
            996 => $expand!(996),
            1000 => $expand!(1000),
            1004 => $expand!(1004),
            1008 => $expand!(1008),
            1012 => $expand!(1012),
            1016 => $expand!(1016),
            1020 => $expand!(1020),
            1024 => $expand!(1024),
            1028 => $expand!(1028),
            1032 => $expand!(1032),
            1036 => $expand!(1036),
            1040 => $expand!(1040),
            1044 => $expand!(1044),
            1048 => $expand!(1048),
            1052 => $expand!(1052),
            1056 => $expand!(1056),
            1060 => $expand!(1060),
            1064 => $expand!(1064),
            1068 => $expand!(1068),
            1072 => $expand!(1072),
            1076 => $expand!(1076),
            1080 => $expand!(1080),
            1084 => $expand!(1084),
            1088 => $expand!(1088),
            1092 => $expand!(1092),
            1096 => $expand!(1096),
            1100 => $expand!(1100),
            1104 => $expand!(1104),
            1108 => $expand!(1108),
            1112 => $expand!(1112),
            1116 => $expand!(1116),
            1120 => $expand!(1120),
            1124 => $expand!(1124),
            1128 => $expand!(1128),
            1132 => $expand!(1132),
            1136 => $expand!(1136),
            1140 => $expand!(1140),
            1144 => $expand!(1144),
            1148 => $expand!(1148),
            1152 => $expand!(1152),
            1156 => $expand!(1156),
            1160 => $expand!(1160),
            1164 => $expand!(1164),
            1168 => $expand!(1168),
            1172 => $expand!(1172),
            1176 => $expand!(1176),
            1180 => $expand!(1180),
            1184 => $expand!(1184),
            1188 => $expand!(1188),
            1192 => $expand!(1192),
            1196 => $expand!(1196),
            1200 => $expand!(1200),
            1204 => $expand!(1204),
            1208 => $expand!(1208),
            1212 => $expand!(1212),
            1216 => $expand!(1216),
            1220 => $expand!(1220),
            1224 => $expand!(1224),
            1228 => $expand!(1228),
            1232 => $expand!(1232),
            1236 => $expand!(1236),
            1240 => $expand!(1240),
            1244 => $expand!(1244),
            1248 => $expand!(1248),
            1252 => $expand!(1252),
            1256 => $expand!(1256),
            1260 => $expand!(1260),
            1264 => $expand!(1264),
            1268 => $expand!(1268),
            1272 => $expand!(1272),
            1276 => $expand!(1276),
            1280 => $expand!(1280),
            1284 => $expand!(1284),
            1288 => $expand!(1288),
            1292 => $expand!(1292),
            1296 => $expand!(1296),
            1300 => $expand!(1300),
            1304 => $expand!(1304),
            1308 => $expand!(1308),
            1312 => $expand!(1312),
            1316 => $expand!(1316),
            1320 => $expand!(1320),
            1324 => $expand!(1324),
            1328 => $expand!(1328),
            1332 => $expand!(1332),
            1336 => $expand!(1336),
            1340 => $expand!(1340),
            1344 => $expand!(1344),
            1348 => $expand!(1348),
            1352 => $expand!(1352),
            1356 => $expand!(1356),
            1360 => $expand!(1360),
            1364 => $expand!(1364),
            1368 => $expand!(1368),
            1372 => $expand!(1372),
            1376 => $expand!(1376),
            1380 => $expand!(1380),
            1384 => $expand!(1384),
            1388 => $expand!(1388),
            1392 => $expand!(1392),
            1396 => $expand!(1396),
            1400 => $expand!(1400),
            1404 => $expand!(1404),
            1408 => $expand!(1408),
            1412 => $expand!(1412),
            1416 => $expand!(1416),
            1420 => $expand!(1420),
            1424 => $expand!(1424),
            1428 => $expand!(1428),
            1432 => $expand!(1432),
            1436 => $expand!(1436),
            1440 => $expand!(1440),
            1444 => $expand!(1444),
            1448 => $expand!(1448),
            1452 => $expand!(1452),
            1456 => $expand!(1456),
            1460 => $expand!(1460),
            1464 => $expand!(1464),
            1468 => $expand!(1468),
            1472 => $expand!(1472),
            1476 => $expand!(1476),
            1480 => $expand!(1480),
            1484 => $expand!(1484),
            1488 => $expand!(1488),
            1492 => $expand!(1492),
            1496 => $expand!(1496),
            1500 => $expand!(1500),
            1504 => $expand!(1504),
            1508 => $expand!(1508),
            1512 => $expand!(1512),
            1516 => $expand!(1516),
            1520 => $expand!(1520),
            1524 => $expand!(1524),
            1528 => $expand!(1528),
            1532 => $expand!(1532),
            1536 => $expand!(1536),
            1540 => $expand!(1540),
            1544 => $expand!(1544),
            1548 => $expand!(1548),
            1552 => $expand!(1552),
            1556 => $expand!(1556),
            1560 => $expand!(1560),
            1564 => $expand!(1564),
            1568 => $expand!(1568),
            1572 => $expand!(1572),
            1576 => $expand!(1576),
            1580 => $expand!(1580),
            1584 => $expand!(1584),
            1588 => $expand!(1588),
            1592 => $expand!(1592),
            1596 => $expand!(1596),
            1600 => $expand!(1600),
            1604 => $expand!(1604),
            1608 => $expand!(1608),
            1612 => $expand!(1612),
            1616 => $expand!(1616),
            1620 => $expand!(1620),
            1624 => $expand!(1624),
            1628 => $expand!(1628),
            1632 => $expand!(1632),
            1636 => $expand!(1636),
            1640 => $expand!(1640),
            1644 => $expand!(1644),
            1648 => $expand!(1648),
            1652 => $expand!(1652),
            1656 => $expand!(1656),
            1660 => $expand!(1660),
            1664 => $expand!(1664),
            1668 => $expand!(1668),
            1672 => $expand!(1672),
            1676 => $expand!(1676),
            1680 => $expand!(1680),
            1684 => $expand!(1684),
            1688 => $expand!(1688),
            1692 => $expand!(1692),
            1696 => $expand!(1696),
            1700 => $expand!(1700),
            1704 => $expand!(1704),
            1708 => $expand!(1708),
            1712 => $expand!(1712),
            1716 => $expand!(1716),
            1720 => $expand!(1720),
            1724 => $expand!(1724),
            1728 => $expand!(1728),
            1732 => $expand!(1732),
            1736 => $expand!(1736),
            1740 => $expand!(1740),
            1744 => $expand!(1744),
            1748 => $expand!(1748),
            1752 => $expand!(1752),
            1756 => $expand!(1756),
            1760 => $expand!(1760),
            1764 => $expand!(1764),
            1768 => $expand!(1768),
            1772 => $expand!(1772),
            1776 => $expand!(1776),
            1780 => $expand!(1780),
            1784 => $expand!(1784),
            1788 => $expand!(1788),
            1792 => $expand!(1792),
            1796 => $expand!(1796),
            1800 => $expand!(1800),
            1804 => $expand!(1804),
            1808 => $expand!(1808),
            1812 => $expand!(1812),
            1816 => $expand!(1816),
            1820 => $expand!(1820),
            1824 => $expand!(1824),
            1828 => $expand!(1828),
            1832 => $expand!(1832),
            1836 => $expand!(1836),
            1840 => $expand!(1840),
            1844 => $expand!(1844),
            1848 => $expand!(1848),
            1852 => $expand!(1852),
            1856 => $expand!(1856),
            1860 => $expand!(1860),
            1864 => $expand!(1864),
            1868 => $expand!(1868),
            1872 => $expand!(1872),
            1876 => $expand!(1876),
            1880 => $expand!(1880),
            1884 => $expand!(1884),
            1888 => $expand!(1888),
            1892 => $expand!(1892),
            1896 => $expand!(1896),
            1900 => $expand!(1900),
            1904 => $expand!(1904),
            1908 => $expand!(1908),
            1912 => $expand!(1912),
            1916 => $expand!(1916),
            1920 => $expand!(1920),
            1924 => $expand!(1924),
            1928 => $expand!(1928),
            1932 => $expand!(1932),
            1936 => $expand!(1936),
            1940 => $expand!(1940),
            1944 => $expand!(1944),
            1948 => $expand!(1948),
            1952 => $expand!(1952),
            1956 => $expand!(1956),
            1960 => $expand!(1960),
            1964 => $expand!(1964),
            1968 => $expand!(1968),
            1972 => $expand!(1972),
            1976 => $expand!(1976),
            1980 => $expand!(1980),
            1984 => $expand!(1984),
            1988 => $expand!(1988),
            1992 => $expand!(1992),
            1996 => $expand!(1996),
            2000 => $expand!(2000),
            2004 => $expand!(2004),
            2008 => $expand!(2008),
            2012 => $expand!(2012),
            2016 => $expand!(2016),
            2020 => $expand!(2020),
            2024 => $expand!(2024),
            2028 => $expand!(2028),
            2032 => $expand!(2032),
            2036 => $expand!(2036),
            2040 => $expand!(2040),
            2048 => $expand!(-2048),
            2052 => $expand!(-2044),
            2056 => $expand!(-2040),
            2060 => $expand!(-2036),
            2064 => $expand!(-2032),
            2068 => $expand!(-2028),
            2072 => $expand!(-2024),
            2076 => $expand!(-2020),
            2080 => $expand!(-2016),
            2084 => $expand!(-2012),
            2088 => $expand!(-2008),
            2092 => $expand!(-2004),
            2096 => $expand!(-2000),
            2100 => $expand!(-1996),
            2104 => $expand!(-1992),
            2108 => $expand!(-1988),
            2112 => $expand!(-1984),
            2116 => $expand!(-1980),
            2120 => $expand!(-1976),
            2124 => $expand!(-1972),
            2128 => $expand!(-1968),
            2132 => $expand!(-1964),
            2136 => $expand!(-1960),
            2140 => $expand!(-1956),
            2144 => $expand!(-1952),
            2148 => $expand!(-1948),
            2152 => $expand!(-1944),
            2156 => $expand!(-1940),
            2160 => $expand!(-1936),
            2164 => $expand!(-1932),
            2168 => $expand!(-1928),
            2172 => $expand!(-1924),
            2176 => $expand!(-1920),
            2180 => $expand!(-1916),
            2184 => $expand!(-1912),
            2188 => $expand!(-1908),
            2192 => $expand!(-1904),
            2196 => $expand!(-1900),
            2200 => $expand!(-1896),
            2204 => $expand!(-1892),
            2208 => $expand!(-1888),
            2212 => $expand!(-1884),
            2216 => $expand!(-1880),
            2220 => $expand!(-1876),
            2224 => $expand!(-1872),
            2228 => $expand!(-1868),
            2232 => $expand!(-1864),
            2236 => $expand!(-1860),
            2240 => $expand!(-1856),
            2244 => $expand!(-1852),
            2248 => $expand!(-1848),
            2252 => $expand!(-1844),
            2256 => $expand!(-1840),
            2260 => $expand!(-1836),
            2264 => $expand!(-1832),
            2268 => $expand!(-1828),
            2272 => $expand!(-1824),
            2276 => $expand!(-1820),
            2280 => $expand!(-1816),
            2284 => $expand!(-1812),
            2288 => $expand!(-1808),
            2292 => $expand!(-1804),
            2296 => $expand!(-1800),
            2300 => $expand!(-1796),
            2304 => $expand!(-1792),
            2308 => $expand!(-1788),
            2312 => $expand!(-1784),
            2316 => $expand!(-1780),
            2320 => $expand!(-1776),
            2324 => $expand!(-1772),
            2328 => $expand!(-1768),
            2332 => $expand!(-1764),
            2336 => $expand!(-1760),
            2340 => $expand!(-1756),
            2344 => $expand!(-1752),
            2348 => $expand!(-1748),
            2352 => $expand!(-1744),
            2356 => $expand!(-1740),
            2360 => $expand!(-1736),
            2364 => $expand!(-1732),
            2368 => $expand!(-1728),
            2372 => $expand!(-1724),
            2376 => $expand!(-1720),
            2380 => $expand!(-1716),
            2384 => $expand!(-1712),
            2388 => $expand!(-1708),
            2392 => $expand!(-1704),
            2396 => $expand!(-1700),
            2400 => $expand!(-1696),
            2404 => $expand!(-1692),
            2408 => $expand!(-1688),
            2412 => $expand!(-1684),
            2416 => $expand!(-1680),
            2420 => $expand!(-1676),
            2424 => $expand!(-1672),
            2428 => $expand!(-1668),
            2432 => $expand!(-1664),
            2436 => $expand!(-1660),
            2440 => $expand!(-1656),
            2444 => $expand!(-1652),
            2448 => $expand!(-1648),
            2452 => $expand!(-1644),
            2456 => $expand!(-1640),
            2460 => $expand!(-1636),
            2464 => $expand!(-1632),
            2468 => $expand!(-1628),
            2472 => $expand!(-1624),
            2476 => $expand!(-1620),
            2480 => $expand!(-1616),
            2484 => $expand!(-1612),
            2488 => $expand!(-1608),
            2492 => $expand!(-1604),
            2496 => $expand!(-1600),
            2500 => $expand!(-1596),
            2504 => $expand!(-1592),
            2508 => $expand!(-1588),
            2512 => $expand!(-1584),
            2516 => $expand!(-1580),
            2520 => $expand!(-1576),
            2524 => $expand!(-1572),
            2528 => $expand!(-1568),
            2532 => $expand!(-1564),
            2536 => $expand!(-1560),
            2540 => $expand!(-1556),
            2544 => $expand!(-1552),
            2548 => $expand!(-1548),
            2552 => $expand!(-1544),
            2556 => $expand!(-1540),
            2560 => $expand!(-1536),
            2564 => $expand!(-1532),
            2568 => $expand!(-1528),
            2572 => $expand!(-1524),
            2576 => $expand!(-1520),
            2580 => $expand!(-1516),
            2584 => $expand!(-1512),
            2588 => $expand!(-1508),
            2592 => $expand!(-1504),
            2596 => $expand!(-1500),
            2600 => $expand!(-1496),
            2604 => $expand!(-1492),
            2608 => $expand!(-1488),
            2612 => $expand!(-1484),
            2616 => $expand!(-1480),
            2620 => $expand!(-1476),
            2624 => $expand!(-1472),
            2628 => $expand!(-1468),
            2632 => $expand!(-1464),
            2636 => $expand!(-1460),
            2640 => $expand!(-1456),
            2644 => $expand!(-1452),
            2648 => $expand!(-1448),
            2652 => $expand!(-1444),
            2656 => $expand!(-1440),
            2660 => $expand!(-1436),
            2664 => $expand!(-1432),
            2668 => $expand!(-1428),
            2672 => $expand!(-1424),
            2676 => $expand!(-1420),
            2680 => $expand!(-1416),
            2684 => $expand!(-1412),
            2688 => $expand!(-1408),
            2692 => $expand!(-1404),
            2696 => $expand!(-1400),
            2700 => $expand!(-1396),
            2704 => $expand!(-1392),
            2708 => $expand!(-1388),
            2712 => $expand!(-1384),
            2716 => $expand!(-1380),
            2720 => $expand!(-1376),
            2724 => $expand!(-1372),
            2728 => $expand!(-1368),
            2732 => $expand!(-1364),
            2736 => $expand!(-1360),
            2740 => $expand!(-1356),
            2744 => $expand!(-1352),
            2748 => $expand!(-1348),
            2752 => $expand!(-1344),
            2756 => $expand!(-1340),
            2760 => $expand!(-1336),
            2764 => $expand!(-1332),
            2768 => $expand!(-1328),
            2772 => $expand!(-1324),
            2776 => $expand!(-1320),
            2780 => $expand!(-1316),
            2784 => $expand!(-1312),
            2788 => $expand!(-1308),
            2792 => $expand!(-1304),
            2796 => $expand!(-1300),
            2800 => $expand!(-1296),
            2804 => $expand!(-1292),
            2808 => $expand!(-1288),
            2812 => $expand!(-1284),
            2816 => $expand!(-1280),
            2820 => $expand!(-1276),
            2824 => $expand!(-1272),
            2828 => $expand!(-1268),
            2832 => $expand!(-1264),
            2836 => $expand!(-1260),
            2840 => $expand!(-1256),
            2844 => $expand!(-1252),
            2848 => $expand!(-1248),
            2852 => $expand!(-1244),
            2856 => $expand!(-1240),
            2860 => $expand!(-1236),
            2864 => $expand!(-1232),
            2868 => $expand!(-1228),
            2872 => $expand!(-1224),
            2876 => $expand!(-1220),
            2880 => $expand!(-1216),
            2884 => $expand!(-1212),
            2888 => $expand!(-1208),
            2892 => $expand!(-1204),
            2896 => $expand!(-1200),
            2900 => $expand!(-1196),
            2904 => $expand!(-1192),
            2908 => $expand!(-1188),
            2912 => $expand!(-1184),
            2916 => $expand!(-1180),
            2920 => $expand!(-1176),
            2924 => $expand!(-1172),
            2928 => $expand!(-1168),
            2932 => $expand!(-1164),
            2936 => $expand!(-1160),
            2940 => $expand!(-1156),
            2944 => $expand!(-1152),
            2948 => $expand!(-1148),
            2952 => $expand!(-1144),
            2956 => $expand!(-1140),
            2960 => $expand!(-1136),
            2964 => $expand!(-1132),
            2968 => $expand!(-1128),
            2972 => $expand!(-1124),
            2976 => $expand!(-1120),
            2980 => $expand!(-1116),
            2984 => $expand!(-1112),
            2988 => $expand!(-1108),
            2992 => $expand!(-1104),
            2996 => $expand!(-1100),
            3000 => $expand!(-1096),
            3004 => $expand!(-1092),
            3008 => $expand!(-1088),
            3012 => $expand!(-1084),
            3016 => $expand!(-1080),
            3020 => $expand!(-1076),
            3024 => $expand!(-1072),
            3028 => $expand!(-1068),
            3032 => $expand!(-1064),
            3036 => $expand!(-1060),
            3040 => $expand!(-1056),
            3044 => $expand!(-1052),
            3048 => $expand!(-1048),
            3052 => $expand!(-1044),
            3056 => $expand!(-1040),
            3060 => $expand!(-1036),
            3064 => $expand!(-1032),
            3068 => $expand!(-1028),
            3072 => $expand!(-1024),
            3076 => $expand!(-1020),
            3080 => $expand!(-1016),
            3084 => $expand!(-1012),
            3088 => $expand!(-1008),
            3092 => $expand!(-1004),
            3096 => $expand!(-1000),
            3100 => $expand!(-996),
            3104 => $expand!(-992),
            3108 => $expand!(-988),
            3112 => $expand!(-984),
            3116 => $expand!(-980),
            3120 => $expand!(-976),
            3124 => $expand!(-972),
            3128 => $expand!(-968),
            3132 => $expand!(-964),
            3136 => $expand!(-960),
            3140 => $expand!(-956),
            3144 => $expand!(-952),
            3148 => $expand!(-948),
            3152 => $expand!(-944),
            3156 => $expand!(-940),
            3160 => $expand!(-936),
            3164 => $expand!(-932),
            3168 => $expand!(-928),
            3172 => $expand!(-924),
            3176 => $expand!(-920),
            3180 => $expand!(-916),
            3184 => $expand!(-912),
            3188 => $expand!(-908),
            3192 => $expand!(-904),
            3196 => $expand!(-900),
            3200 => $expand!(-896),
            3204 => $expand!(-892),
            3208 => $expand!(-888),
            3212 => $expand!(-884),
            3216 => $expand!(-880),
            3220 => $expand!(-876),
            3224 => $expand!(-872),
            3228 => $expand!(-868),
            3232 => $expand!(-864),
            3236 => $expand!(-860),
            3240 => $expand!(-856),
            3244 => $expand!(-852),
            3248 => $expand!(-848),
            3252 => $expand!(-844),
            3256 => $expand!(-840),
            3260 => $expand!(-836),
            3264 => $expand!(-832),
            3268 => $expand!(-828),
            3272 => $expand!(-824),
            3276 => $expand!(-820),
            3280 => $expand!(-816),
            3284 => $expand!(-812),
            3288 => $expand!(-808),
            3292 => $expand!(-804),
            3296 => $expand!(-800),
            3300 => $expand!(-796),
            3304 => $expand!(-792),
            3308 => $expand!(-788),
            3312 => $expand!(-784),
            3316 => $expand!(-780),
            3320 => $expand!(-776),
            3324 => $expand!(-772),
            3328 => $expand!(-768),
            3332 => $expand!(-764),
            3336 => $expand!(-760),
            3340 => $expand!(-756),
            3344 => $expand!(-752),
            3348 => $expand!(-748),
            3352 => $expand!(-744),
            3356 => $expand!(-740),
            3360 => $expand!(-736),
            3364 => $expand!(-732),
            3368 => $expand!(-728),
            3372 => $expand!(-724),
            3376 => $expand!(-720),
            3380 => $expand!(-716),
            3384 => $expand!(-712),
            3388 => $expand!(-708),
            3392 => $expand!(-704),
            3396 => $expand!(-700),
            3400 => $expand!(-696),
            3404 => $expand!(-692),
            3408 => $expand!(-688),
            3412 => $expand!(-684),
            3416 => $expand!(-680),
            3420 => $expand!(-676),
            3424 => $expand!(-672),
            3428 => $expand!(-668),
            3432 => $expand!(-664),
            3436 => $expand!(-660),
            3440 => $expand!(-656),
            3444 => $expand!(-652),
            3448 => $expand!(-648),
            3452 => $expand!(-644),
            3456 => $expand!(-640),
            3460 => $expand!(-636),
            3464 => $expand!(-632),
            3468 => $expand!(-628),
            3472 => $expand!(-624),
            3476 => $expand!(-620),
            3480 => $expand!(-616),
            3484 => $expand!(-612),
            3488 => $expand!(-608),
            3492 => $expand!(-604),
            3496 => $expand!(-600),
            3500 => $expand!(-596),
            3504 => $expand!(-592),
            3508 => $expand!(-588),
            3512 => $expand!(-584),
            3516 => $expand!(-580),
            3520 => $expand!(-576),
            3524 => $expand!(-572),
            3528 => $expand!(-568),
            3532 => $expand!(-564),
            3536 => $expand!(-560),
            3540 => $expand!(-556),
            3544 => $expand!(-552),
            3548 => $expand!(-548),
            3552 => $expand!(-544),
            3556 => $expand!(-540),
            3560 => $expand!(-536),
            3564 => $expand!(-532),
            3568 => $expand!(-528),
            3572 => $expand!(-524),
            3576 => $expand!(-520),
            3580 => $expand!(-516),
            3584 => $expand!(-512),
            3588 => $expand!(-508),
            3592 => $expand!(-504),
            3596 => $expand!(-500),
            3600 => $expand!(-496),
            3604 => $expand!(-492),
            3608 => $expand!(-488),
            3612 => $expand!(-484),
            3616 => $expand!(-480),
            3620 => $expand!(-476),
            3624 => $expand!(-472),
            3628 => $expand!(-468),
            3632 => $expand!(-464),
            3636 => $expand!(-460),
            3640 => $expand!(-456),
            3644 => $expand!(-452),
            3648 => $expand!(-448),
            3652 => $expand!(-444),
            3656 => $expand!(-440),
            3660 => $expand!(-436),
            3664 => $expand!(-432),
            3668 => $expand!(-428),
            3672 => $expand!(-424),
            3676 => $expand!(-420),
            3680 => $expand!(-416),
            3684 => $expand!(-412),
            3688 => $expand!(-408),
            3692 => $expand!(-404),
            3696 => $expand!(-400),
            3700 => $expand!(-396),
            3704 => $expand!(-392),
            3708 => $expand!(-388),
            3712 => $expand!(-384),
            3716 => $expand!(-380),
            3720 => $expand!(-376),
            3724 => $expand!(-372),
            3728 => $expand!(-368),
            3732 => $expand!(-364),
            3736 => $expand!(-360),
            3740 => $expand!(-356),
            3744 => $expand!(-352),
            3748 => $expand!(-348),
            3752 => $expand!(-344),
            3756 => $expand!(-340),
            3760 => $expand!(-336),
            3764 => $expand!(-332),
            3768 => $expand!(-328),
            3772 => $expand!(-324),
            3776 => $expand!(-320),
            3780 => $expand!(-316),
            3784 => $expand!(-312),
            3788 => $expand!(-308),
            3792 => $expand!(-304),
            3796 => $expand!(-300),
            3800 => $expand!(-296),
            3804 => $expand!(-292),
            3808 => $expand!(-288),
            3812 => $expand!(-284),
            3816 => $expand!(-280),
            3820 => $expand!(-276),
            3824 => $expand!(-272),
            3828 => $expand!(-268),
            3832 => $expand!(-264),
            3836 => $expand!(-260),
            3840 => $expand!(-256),
            3844 => $expand!(-252),
            3848 => $expand!(-248),
            3852 => $expand!(-244),
            3856 => $expand!(-240),
            3860 => $expand!(-236),
            3864 => $expand!(-232),
            3868 => $expand!(-228),
            3872 => $expand!(-224),
            3876 => $expand!(-220),
            3880 => $expand!(-216),
            3884 => $expand!(-212),
            3888 => $expand!(-208),
            3892 => $expand!(-204),
            3896 => $expand!(-200),
            3900 => $expand!(-196),
            3904 => $expand!(-192),
            3908 => $expand!(-188),
            3912 => $expand!(-184),
            3916 => $expand!(-180),
            3920 => $expand!(-176),
            3924 => $expand!(-172),
            3928 => $expand!(-168),
            3932 => $expand!(-164),
            3936 => $expand!(-160),
            3940 => $expand!(-156),
            3944 => $expand!(-152),
            3948 => $expand!(-148),
            3952 => $expand!(-144),
            3956 => $expand!(-140),
            3960 => $expand!(-136),
            3964 => $expand!(-132),
            3968 => $expand!(-128),
            3972 => $expand!(-124),
            3976 => $expand!(-120),
            3980 => $expand!(-116),
            3984 => $expand!(-112),
            3988 => $expand!(-108),
            3992 => $expand!(-104),
            3996 => $expand!(-100),
            4000 => $expand!(-96),
            4004 => $expand!(-92),
            4008 => $expand!(-88),
            4012 => $expand!(-84),
            4016 => $expand!(-80),
            4020 => $expand!(-76),
            4024 => $expand!(-72),
            4028 => $expand!(-68),
            4032 => $expand!(-64),
            4036 => $expand!(-60),
            4040 => $expand!(-56),
            4044 => $expand!(-52),
            4048 => $expand!(-48),
            4052 => $expand!(-44),
            4056 => $expand!(-40),
            4060 => $expand!(-36),
            4064 => $expand!(-32),
            4068 => $expand!(-28),
            4072 => $expand!(-24),
            4076 => $expand!(-20),
            4080 => $expand!(-16),
            4084 => $expand!(-12),
            4088 => $expand!(-8),
            4092 => $expand!(-4),
            _ => $expand!(2044),
        }
    };
}

//immediate value: -1024:1022
macro_rules! constify_imm_s11 {
    ($imm_s11:expr, $expand:ident) => {
        #[allow(overflowing_literals)]
        match ($imm_s11) & 0b111_1111_1111 {
            0 => $expand!(0),
            2 => $expand!(2),
            4 => $expand!(4),
            6 => $expand!(6),
            8 => $expand!(8),
            10 => $expand!(10),
            12 => $expand!(12),
            14 => $expand!(14),
            16 => $expand!(16),
            18 => $expand!(18),
            20 => $expand!(20),
            22 => $expand!(22),
            24 => $expand!(24),
            26 => $expand!(26),
            28 => $expand!(28),
            30 => $expand!(30),
            32 => $expand!(32),
            34 => $expand!(34),
            36 => $expand!(36),
            38 => $expand!(38),
            40 => $expand!(40),
            42 => $expand!(42),
            44 => $expand!(44),
            46 => $expand!(46),
            48 => $expand!(48),
            50 => $expand!(50),
            52 => $expand!(52),
            54 => $expand!(54),
            56 => $expand!(56),
            58 => $expand!(58),
            60 => $expand!(60),
            62 => $expand!(62),
            64 => $expand!(64),
            66 => $expand!(66),
            68 => $expand!(68),
            70 => $expand!(70),
            72 => $expand!(72),
            74 => $expand!(74),
            76 => $expand!(76),
            78 => $expand!(78),
            80 => $expand!(80),
            82 => $expand!(82),
            84 => $expand!(84),
            86 => $expand!(86),
            88 => $expand!(88),
            90 => $expand!(90),
            92 => $expand!(92),
            94 => $expand!(94),
            96 => $expand!(96),
            98 => $expand!(98),
            100 => $expand!(100),
            102 => $expand!(102),
            104 => $expand!(104),
            106 => $expand!(106),
            108 => $expand!(108),
            110 => $expand!(110),
            112 => $expand!(112),
            114 => $expand!(114),
            116 => $expand!(116),
            118 => $expand!(118),
            120 => $expand!(120),
            122 => $expand!(122),
            124 => $expand!(124),
            126 => $expand!(126),
            128 => $expand!(128),
            130 => $expand!(130),
            132 => $expand!(132),
            134 => $expand!(134),
            136 => $expand!(136),
            138 => $expand!(138),
            140 => $expand!(140),
            142 => $expand!(142),
            144 => $expand!(144),
            146 => $expand!(146),
            148 => $expand!(148),
            150 => $expand!(150),
            152 => $expand!(152),
            154 => $expand!(154),
            156 => $expand!(156),
            158 => $expand!(158),
            160 => $expand!(160),
            162 => $expand!(162),
            164 => $expand!(164),
            166 => $expand!(166),
            168 => $expand!(168),
            170 => $expand!(170),
            172 => $expand!(172),
            174 => $expand!(174),
            176 => $expand!(176),
            178 => $expand!(178),
            180 => $expand!(180),
            182 => $expand!(182),
            184 => $expand!(184),
            186 => $expand!(186),
            188 => $expand!(188),
            190 => $expand!(190),
            192 => $expand!(192),
            194 => $expand!(194),
            196 => $expand!(196),
            198 => $expand!(198),
            200 => $expand!(200),
            202 => $expand!(202),
            204 => $expand!(204),
            206 => $expand!(206),
            208 => $expand!(208),
            210 => $expand!(210),
            212 => $expand!(212),
            214 => $expand!(214),
            216 => $expand!(216),
            218 => $expand!(218),
            220 => $expand!(220),
            222 => $expand!(222),
            224 => $expand!(224),
            226 => $expand!(226),
            228 => $expand!(228),
            230 => $expand!(230),
            232 => $expand!(232),
            234 => $expand!(234),
            236 => $expand!(236),
            238 => $expand!(238),
            240 => $expand!(240),
            242 => $expand!(242),
            244 => $expand!(244),
            246 => $expand!(246),
            248 => $expand!(248),
            250 => $expand!(250),
            252 => $expand!(252),
            254 => $expand!(254),
            256 => $expand!(256),
            258 => $expand!(258),
            260 => $expand!(260),
            262 => $expand!(262),
            264 => $expand!(264),
            266 => $expand!(266),
            268 => $expand!(268),
            270 => $expand!(270),
            272 => $expand!(272),
            274 => $expand!(274),
            276 => $expand!(276),
            278 => $expand!(278),
            280 => $expand!(280),
            282 => $expand!(282),
            284 => $expand!(284),
            286 => $expand!(286),
            288 => $expand!(288),
            290 => $expand!(290),
            292 => $expand!(292),
            294 => $expand!(294),
            296 => $expand!(296),
            298 => $expand!(298),
            300 => $expand!(300),
            302 => $expand!(302),
            304 => $expand!(304),
            306 => $expand!(306),
            308 => $expand!(308),
            310 => $expand!(310),
            312 => $expand!(312),
            314 => $expand!(314),
            316 => $expand!(316),
            318 => $expand!(318),
            320 => $expand!(320),
            322 => $expand!(322),
            324 => $expand!(324),
            326 => $expand!(326),
            328 => $expand!(328),
            330 => $expand!(330),
            332 => $expand!(332),
            334 => $expand!(334),
            336 => $expand!(336),
            338 => $expand!(338),
            340 => $expand!(340),
            342 => $expand!(342),
            344 => $expand!(344),
            346 => $expand!(346),
            348 => $expand!(348),
            350 => $expand!(350),
            352 => $expand!(352),
            354 => $expand!(354),
            356 => $expand!(356),
            358 => $expand!(358),
            360 => $expand!(360),
            362 => $expand!(362),
            364 => $expand!(364),
            366 => $expand!(366),
            368 => $expand!(368),
            370 => $expand!(370),
            372 => $expand!(372),
            374 => $expand!(374),
            376 => $expand!(376),
            378 => $expand!(378),
            380 => $expand!(380),
            382 => $expand!(382),
            384 => $expand!(384),
            386 => $expand!(386),
            388 => $expand!(388),
            390 => $expand!(390),
            392 => $expand!(392),
            394 => $expand!(394),
            396 => $expand!(396),
            398 => $expand!(398),
            400 => $expand!(400),
            402 => $expand!(402),
            404 => $expand!(404),
            406 => $expand!(406),
            408 => $expand!(408),
            410 => $expand!(410),
            412 => $expand!(412),
            414 => $expand!(414),
            416 => $expand!(416),
            418 => $expand!(418),
            420 => $expand!(420),
            422 => $expand!(422),
            424 => $expand!(424),
            426 => $expand!(426),
            428 => $expand!(428),
            430 => $expand!(430),
            432 => $expand!(432),
            434 => $expand!(434),
            436 => $expand!(436),
            438 => $expand!(438),
            440 => $expand!(440),
            442 => $expand!(442),
            444 => $expand!(444),
            446 => $expand!(446),
            448 => $expand!(448),
            450 => $expand!(450),
            452 => $expand!(452),
            454 => $expand!(454),
            456 => $expand!(456),
            458 => $expand!(458),
            460 => $expand!(460),
            462 => $expand!(462),
            464 => $expand!(464),
            466 => $expand!(466),
            468 => $expand!(468),
            470 => $expand!(470),
            472 => $expand!(472),
            474 => $expand!(474),
            476 => $expand!(476),
            478 => $expand!(478),
            480 => $expand!(480),
            482 => $expand!(482),
            484 => $expand!(484),
            486 => $expand!(486),
            488 => $expand!(488),
            490 => $expand!(490),
            492 => $expand!(492),
            494 => $expand!(494),
            496 => $expand!(496),
            498 => $expand!(498),
            500 => $expand!(500),
            502 => $expand!(502),
            504 => $expand!(504),
            506 => $expand!(506),
            508 => $expand!(508),
            510 => $expand!(510),
            512 => $expand!(512),
            514 => $expand!(514),
            516 => $expand!(516),
            518 => $expand!(518),
            520 => $expand!(520),
            522 => $expand!(522),
            524 => $expand!(524),
            526 => $expand!(526),
            528 => $expand!(528),
            530 => $expand!(530),
            532 => $expand!(532),
            534 => $expand!(534),
            536 => $expand!(536),
            538 => $expand!(538),
            540 => $expand!(540),
            542 => $expand!(542),
            544 => $expand!(544),
            546 => $expand!(546),
            548 => $expand!(548),
            550 => $expand!(550),
            552 => $expand!(552),
            554 => $expand!(554),
            556 => $expand!(556),
            558 => $expand!(558),
            560 => $expand!(560),
            562 => $expand!(562),
            564 => $expand!(564),
            566 => $expand!(566),
            568 => $expand!(568),
            570 => $expand!(570),
            572 => $expand!(572),
            574 => $expand!(574),
            576 => $expand!(576),
            578 => $expand!(578),
            580 => $expand!(580),
            582 => $expand!(582),
            584 => $expand!(584),
            586 => $expand!(586),
            588 => $expand!(588),
            590 => $expand!(590),
            592 => $expand!(592),
            594 => $expand!(594),
            596 => $expand!(596),
            598 => $expand!(598),
            600 => $expand!(600),
            602 => $expand!(602),
            604 => $expand!(604),
            606 => $expand!(606),
            608 => $expand!(608),
            610 => $expand!(610),
            612 => $expand!(612),
            614 => $expand!(614),
            616 => $expand!(616),
            618 => $expand!(618),
            620 => $expand!(620),
            622 => $expand!(622),
            624 => $expand!(624),
            626 => $expand!(626),
            628 => $expand!(628),
            630 => $expand!(630),
            632 => $expand!(632),
            634 => $expand!(634),
            636 => $expand!(636),
            638 => $expand!(638),
            640 => $expand!(640),
            642 => $expand!(642),
            644 => $expand!(644),
            646 => $expand!(646),
            648 => $expand!(648),
            650 => $expand!(650),
            652 => $expand!(652),
            654 => $expand!(654),
            656 => $expand!(656),
            658 => $expand!(658),
            660 => $expand!(660),
            662 => $expand!(662),
            664 => $expand!(664),
            666 => $expand!(666),
            668 => $expand!(668),
            670 => $expand!(670),
            672 => $expand!(672),
            674 => $expand!(674),
            676 => $expand!(676),
            678 => $expand!(678),
            680 => $expand!(680),
            682 => $expand!(682),
            684 => $expand!(684),
            686 => $expand!(686),
            688 => $expand!(688),
            690 => $expand!(690),
            692 => $expand!(692),
            694 => $expand!(694),
            696 => $expand!(696),
            698 => $expand!(698),
            700 => $expand!(700),
            702 => $expand!(702),
            704 => $expand!(704),
            706 => $expand!(706),
            708 => $expand!(708),
            710 => $expand!(710),
            712 => $expand!(712),
            714 => $expand!(714),
            716 => $expand!(716),
            718 => $expand!(718),
            720 => $expand!(720),
            722 => $expand!(722),
            724 => $expand!(724),
            726 => $expand!(726),
            728 => $expand!(728),
            730 => $expand!(730),
            732 => $expand!(732),
            734 => $expand!(734),
            736 => $expand!(736),
            738 => $expand!(738),
            740 => $expand!(740),
            742 => $expand!(742),
            744 => $expand!(744),
            746 => $expand!(746),
            748 => $expand!(748),
            750 => $expand!(750),
            752 => $expand!(752),
            754 => $expand!(754),
            756 => $expand!(756),
            758 => $expand!(758),
            760 => $expand!(760),
            762 => $expand!(762),
            764 => $expand!(764),
            766 => $expand!(766),
            768 => $expand!(768),
            770 => $expand!(770),
            772 => $expand!(772),
            774 => $expand!(774),
            776 => $expand!(776),
            778 => $expand!(778),
            780 => $expand!(780),
            782 => $expand!(782),
            784 => $expand!(784),
            786 => $expand!(786),
            788 => $expand!(788),
            790 => $expand!(790),
            792 => $expand!(792),
            794 => $expand!(794),
            796 => $expand!(796),
            798 => $expand!(798),
            800 => $expand!(800),
            802 => $expand!(802),
            804 => $expand!(804),
            806 => $expand!(806),
            808 => $expand!(808),
            810 => $expand!(810),
            812 => $expand!(812),
            814 => $expand!(814),
            816 => $expand!(816),
            818 => $expand!(818),
            820 => $expand!(820),
            822 => $expand!(822),
            824 => $expand!(824),
            826 => $expand!(826),
            828 => $expand!(828),
            830 => $expand!(830),
            832 => $expand!(832),
            834 => $expand!(834),
            836 => $expand!(836),
            838 => $expand!(838),
            840 => $expand!(840),
            842 => $expand!(842),
            844 => $expand!(844),
            846 => $expand!(846),
            848 => $expand!(848),
            850 => $expand!(850),
            852 => $expand!(852),
            854 => $expand!(854),
            856 => $expand!(856),
            858 => $expand!(858),
            860 => $expand!(860),
            862 => $expand!(862),
            864 => $expand!(864),
            866 => $expand!(866),
            868 => $expand!(868),
            870 => $expand!(870),
            872 => $expand!(872),
            874 => $expand!(874),
            876 => $expand!(876),
            878 => $expand!(878),
            880 => $expand!(880),
            882 => $expand!(882),
            884 => $expand!(884),
            886 => $expand!(886),
            888 => $expand!(888),
            890 => $expand!(890),
            892 => $expand!(892),
            894 => $expand!(894),
            896 => $expand!(896),
            898 => $expand!(898),
            900 => $expand!(900),
            902 => $expand!(902),
            904 => $expand!(904),
            906 => $expand!(906),
            908 => $expand!(908),
            910 => $expand!(910),
            912 => $expand!(912),
            914 => $expand!(914),
            916 => $expand!(916),
            918 => $expand!(918),
            920 => $expand!(920),
            922 => $expand!(922),
            924 => $expand!(924),
            926 => $expand!(926),
            928 => $expand!(928),
            930 => $expand!(930),
            932 => $expand!(932),
            934 => $expand!(934),
            936 => $expand!(936),
            938 => $expand!(938),
            940 => $expand!(940),
            942 => $expand!(942),
            944 => $expand!(944),
            946 => $expand!(946),
            948 => $expand!(948),
            950 => $expand!(950),
            952 => $expand!(952),
            954 => $expand!(954),
            956 => $expand!(956),
            958 => $expand!(958),
            960 => $expand!(960),
            962 => $expand!(962),
            964 => $expand!(964),
            966 => $expand!(966),
            968 => $expand!(968),
            970 => $expand!(970),
            972 => $expand!(972),
            974 => $expand!(974),
            976 => $expand!(976),
            978 => $expand!(978),
            980 => $expand!(980),
            982 => $expand!(982),
            984 => $expand!(984),
            986 => $expand!(986),
            988 => $expand!(988),
            990 => $expand!(990),
            992 => $expand!(992),
            994 => $expand!(994),
            996 => $expand!(996),
            998 => $expand!(998),
            1000 => $expand!(1000),
            1002 => $expand!(1002),
            1004 => $expand!(1004),
            1006 => $expand!(1006),
            1008 => $expand!(1008),
            1010 => $expand!(1010),
            1012 => $expand!(1012),
            1014 => $expand!(1014),
            1016 => $expand!(1016),
            1018 => $expand!(1018),
            1020 => $expand!(1020),
            1024 => $expand!(-1024),
            1026 => $expand!(-1022),
            1028 => $expand!(-1020),
            1030 => $expand!(-1018),
            1032 => $expand!(-1016),
            1034 => $expand!(-1014),
            1036 => $expand!(-1012),
            1038 => $expand!(-1010),
            1040 => $expand!(-1008),
            1042 => $expand!(-1006),
            1044 => $expand!(-1004),
            1046 => $expand!(-1002),
            1048 => $expand!(-1000),
            1050 => $expand!(-998),
            1052 => $expand!(-996),
            1054 => $expand!(-994),
            1056 => $expand!(-992),
            1058 => $expand!(-990),
            1060 => $expand!(-988),
            1062 => $expand!(-986),
            1064 => $expand!(-984),
            1066 => $expand!(-982),
            1068 => $expand!(-980),
            1070 => $expand!(-978),
            1072 => $expand!(-976),
            1074 => $expand!(-974),
            1076 => $expand!(-972),
            1078 => $expand!(-970),
            1080 => $expand!(-968),
            1082 => $expand!(-966),
            1084 => $expand!(-964),
            1086 => $expand!(-962),
            1088 => $expand!(-960),
            1090 => $expand!(-958),
            1092 => $expand!(-956),
            1094 => $expand!(-954),
            1096 => $expand!(-952),
            1098 => $expand!(-950),
            1100 => $expand!(-948),
            1102 => $expand!(-946),
            1104 => $expand!(-944),
            1106 => $expand!(-942),
            1108 => $expand!(-940),
            1110 => $expand!(-938),
            1112 => $expand!(-936),
            1114 => $expand!(-934),
            1116 => $expand!(-932),
            1118 => $expand!(-930),
            1120 => $expand!(-928),
            1122 => $expand!(-926),
            1124 => $expand!(-924),
            1126 => $expand!(-922),
            1128 => $expand!(-920),
            1130 => $expand!(-918),
            1132 => $expand!(-916),
            1134 => $expand!(-914),
            1136 => $expand!(-912),
            1138 => $expand!(-910),
            1140 => $expand!(-908),
            1142 => $expand!(-906),
            1144 => $expand!(-904),
            1146 => $expand!(-902),
            1148 => $expand!(-900),
            1150 => $expand!(-898),
            1152 => $expand!(-896),
            1154 => $expand!(-894),
            1156 => $expand!(-892),
            1158 => $expand!(-890),
            1160 => $expand!(-888),
            1162 => $expand!(-886),
            1164 => $expand!(-884),
            1166 => $expand!(-882),
            1168 => $expand!(-880),
            1170 => $expand!(-878),
            1172 => $expand!(-876),
            1174 => $expand!(-874),
            1176 => $expand!(-872),
            1178 => $expand!(-870),
            1180 => $expand!(-868),
            1182 => $expand!(-866),
            1184 => $expand!(-864),
            1186 => $expand!(-862),
            1188 => $expand!(-860),
            1190 => $expand!(-858),
            1192 => $expand!(-856),
            1194 => $expand!(-854),
            1196 => $expand!(-852),
            1198 => $expand!(-850),
            1200 => $expand!(-848),
            1202 => $expand!(-846),
            1204 => $expand!(-844),
            1206 => $expand!(-842),
            1208 => $expand!(-840),
            1210 => $expand!(-838),
            1212 => $expand!(-836),
            1214 => $expand!(-834),
            1216 => $expand!(-832),
            1218 => $expand!(-830),
            1220 => $expand!(-828),
            1222 => $expand!(-826),
            1224 => $expand!(-824),
            1226 => $expand!(-822),
            1228 => $expand!(-820),
            1230 => $expand!(-818),
            1232 => $expand!(-816),
            1234 => $expand!(-814),
            1236 => $expand!(-812),
            1238 => $expand!(-810),
            1240 => $expand!(-808),
            1242 => $expand!(-806),
            1244 => $expand!(-804),
            1246 => $expand!(-802),
            1248 => $expand!(-800),
            1250 => $expand!(-798),
            1252 => $expand!(-796),
            1254 => $expand!(-794),
            1256 => $expand!(-792),
            1258 => $expand!(-790),
            1260 => $expand!(-788),
            1262 => $expand!(-786),
            1264 => $expand!(-784),
            1266 => $expand!(-782),
            1268 => $expand!(-780),
            1270 => $expand!(-778),
            1272 => $expand!(-776),
            1274 => $expand!(-774),
            1276 => $expand!(-772),
            1278 => $expand!(-770),
            1280 => $expand!(-768),
            1282 => $expand!(-766),
            1284 => $expand!(-764),
            1286 => $expand!(-762),
            1288 => $expand!(-760),
            1290 => $expand!(-758),
            1292 => $expand!(-756),
            1294 => $expand!(-754),
            1296 => $expand!(-752),
            1298 => $expand!(-750),
            1300 => $expand!(-748),
            1302 => $expand!(-746),
            1304 => $expand!(-744),
            1306 => $expand!(-742),
            1308 => $expand!(-740),
            1310 => $expand!(-738),
            1312 => $expand!(-736),
            1314 => $expand!(-734),
            1316 => $expand!(-732),
            1318 => $expand!(-730),
            1320 => $expand!(-728),
            1322 => $expand!(-726),
            1324 => $expand!(-724),
            1326 => $expand!(-722),
            1328 => $expand!(-720),
            1330 => $expand!(-718),
            1332 => $expand!(-716),
            1334 => $expand!(-714),
            1336 => $expand!(-712),
            1338 => $expand!(-710),
            1340 => $expand!(-708),
            1342 => $expand!(-706),
            1344 => $expand!(-704),
            1346 => $expand!(-702),
            1348 => $expand!(-700),
            1350 => $expand!(-698),
            1352 => $expand!(-696),
            1354 => $expand!(-694),
            1356 => $expand!(-692),
            1358 => $expand!(-690),
            1360 => $expand!(-688),
            1362 => $expand!(-686),
            1364 => $expand!(-684),
            1366 => $expand!(-682),
            1368 => $expand!(-680),
            1370 => $expand!(-678),
            1372 => $expand!(-676),
            1374 => $expand!(-674),
            1376 => $expand!(-672),
            1378 => $expand!(-670),
            1380 => $expand!(-668),
            1382 => $expand!(-666),
            1384 => $expand!(-664),
            1386 => $expand!(-662),
            1388 => $expand!(-660),
            1390 => $expand!(-658),
            1392 => $expand!(-656),
            1394 => $expand!(-654),
            1396 => $expand!(-652),
            1398 => $expand!(-650),
            1400 => $expand!(-648),
            1402 => $expand!(-646),
            1404 => $expand!(-644),
            1406 => $expand!(-642),
            1408 => $expand!(-640),
            1410 => $expand!(-638),
            1412 => $expand!(-636),
            1414 => $expand!(-634),
            1416 => $expand!(-632),
            1418 => $expand!(-630),
            1420 => $expand!(-628),
            1422 => $expand!(-626),
            1424 => $expand!(-624),
            1426 => $expand!(-622),
            1428 => $expand!(-620),
            1430 => $expand!(-618),
            1432 => $expand!(-616),
            1434 => $expand!(-614),
            1436 => $expand!(-612),
            1438 => $expand!(-610),
            1440 => $expand!(-608),
            1442 => $expand!(-606),
            1444 => $expand!(-604),
            1446 => $expand!(-602),
            1448 => $expand!(-600),
            1450 => $expand!(-598),
            1452 => $expand!(-596),
            1454 => $expand!(-594),
            1456 => $expand!(-592),
            1458 => $expand!(-590),
            1460 => $expand!(-588),
            1462 => $expand!(-586),
            1464 => $expand!(-584),
            1466 => $expand!(-582),
            1468 => $expand!(-580),
            1470 => $expand!(-578),
            1472 => $expand!(-576),
            1474 => $expand!(-574),
            1476 => $expand!(-572),
            1478 => $expand!(-570),
            1480 => $expand!(-568),
            1482 => $expand!(-566),
            1484 => $expand!(-564),
            1486 => $expand!(-562),
            1488 => $expand!(-560),
            1490 => $expand!(-558),
            1492 => $expand!(-556),
            1494 => $expand!(-554),
            1496 => $expand!(-552),
            1498 => $expand!(-550),
            1500 => $expand!(-548),
            1502 => $expand!(-546),
            1504 => $expand!(-544),
            1506 => $expand!(-542),
            1508 => $expand!(-540),
            1510 => $expand!(-538),
            1512 => $expand!(-536),
            1514 => $expand!(-534),
            1516 => $expand!(-532),
            1518 => $expand!(-530),
            1520 => $expand!(-528),
            1522 => $expand!(-526),
            1524 => $expand!(-524),
            1526 => $expand!(-522),
            1528 => $expand!(-520),
            1530 => $expand!(-518),
            1532 => $expand!(-516),
            1534 => $expand!(-514),
            1536 => $expand!(-512),
            1538 => $expand!(-510),
            1540 => $expand!(-508),
            1542 => $expand!(-506),
            1544 => $expand!(-504),
            1546 => $expand!(-502),
            1548 => $expand!(-500),
            1550 => $expand!(-498),
            1552 => $expand!(-496),
            1554 => $expand!(-494),
            1556 => $expand!(-492),
            1558 => $expand!(-490),
            1560 => $expand!(-488),
            1562 => $expand!(-486),
            1564 => $expand!(-484),
            1566 => $expand!(-482),
            1568 => $expand!(-480),
            1570 => $expand!(-478),
            1572 => $expand!(-476),
            1574 => $expand!(-474),
            1576 => $expand!(-472),
            1578 => $expand!(-470),
            1580 => $expand!(-468),
            1582 => $expand!(-466),
            1584 => $expand!(-464),
            1586 => $expand!(-462),
            1588 => $expand!(-460),
            1590 => $expand!(-458),
            1592 => $expand!(-456),
            1594 => $expand!(-454),
            1596 => $expand!(-452),
            1598 => $expand!(-450),
            1600 => $expand!(-448),
            1602 => $expand!(-446),
            1604 => $expand!(-444),
            1606 => $expand!(-442),
            1608 => $expand!(-440),
            1610 => $expand!(-438),
            1612 => $expand!(-436),
            1614 => $expand!(-434),
            1616 => $expand!(-432),
            1618 => $expand!(-430),
            1620 => $expand!(-428),
            1622 => $expand!(-426),
            1624 => $expand!(-424),
            1626 => $expand!(-422),
            1628 => $expand!(-420),
            1630 => $expand!(-418),
            1632 => $expand!(-416),
            1634 => $expand!(-414),
            1636 => $expand!(-412),
            1638 => $expand!(-410),
            1640 => $expand!(-408),
            1642 => $expand!(-406),
            1644 => $expand!(-404),
            1646 => $expand!(-402),
            1648 => $expand!(-400),
            1650 => $expand!(-398),
            1652 => $expand!(-396),
            1654 => $expand!(-394),
            1656 => $expand!(-392),
            1658 => $expand!(-390),
            1660 => $expand!(-388),
            1662 => $expand!(-386),
            1664 => $expand!(-384),
            1666 => $expand!(-382),
            1668 => $expand!(-380),
            1670 => $expand!(-378),
            1672 => $expand!(-376),
            1674 => $expand!(-374),
            1676 => $expand!(-372),
            1678 => $expand!(-370),
            1680 => $expand!(-368),
            1682 => $expand!(-366),
            1684 => $expand!(-364),
            1686 => $expand!(-362),
            1688 => $expand!(-360),
            1690 => $expand!(-358),
            1692 => $expand!(-356),
            1694 => $expand!(-354),
            1696 => $expand!(-352),
            1698 => $expand!(-350),
            1700 => $expand!(-348),
            1702 => $expand!(-346),
            1704 => $expand!(-344),
            1706 => $expand!(-342),
            1708 => $expand!(-340),
            1710 => $expand!(-338),
            1712 => $expand!(-336),
            1714 => $expand!(-334),
            1716 => $expand!(-332),
            1718 => $expand!(-330),
            1720 => $expand!(-328),
            1722 => $expand!(-326),
            1724 => $expand!(-324),
            1726 => $expand!(-322),
            1728 => $expand!(-320),
            1730 => $expand!(-318),
            1732 => $expand!(-316),
            1734 => $expand!(-314),
            1736 => $expand!(-312),
            1738 => $expand!(-310),
            1740 => $expand!(-308),
            1742 => $expand!(-306),
            1744 => $expand!(-304),
            1746 => $expand!(-302),
            1748 => $expand!(-300),
            1750 => $expand!(-298),
            1752 => $expand!(-296),
            1754 => $expand!(-294),
            1756 => $expand!(-292),
            1758 => $expand!(-290),
            1760 => $expand!(-288),
            1762 => $expand!(-286),
            1764 => $expand!(-284),
            1766 => $expand!(-282),
            1768 => $expand!(-280),
            1770 => $expand!(-278),
            1772 => $expand!(-276),
            1774 => $expand!(-274),
            1776 => $expand!(-272),
            1778 => $expand!(-270),
            1780 => $expand!(-268),
            1782 => $expand!(-266),
            1784 => $expand!(-264),
            1786 => $expand!(-262),
            1788 => $expand!(-260),
            1790 => $expand!(-258),
            1792 => $expand!(-256),
            1794 => $expand!(-254),
            1796 => $expand!(-252),
            1798 => $expand!(-250),
            1800 => $expand!(-248),
            1802 => $expand!(-246),
            1804 => $expand!(-244),
            1806 => $expand!(-242),
            1808 => $expand!(-240),
            1810 => $expand!(-238),
            1812 => $expand!(-236),
            1814 => $expand!(-234),
            1816 => $expand!(-232),
            1818 => $expand!(-230),
            1820 => $expand!(-228),
            1822 => $expand!(-226),
            1824 => $expand!(-224),
            1826 => $expand!(-222),
            1828 => $expand!(-220),
            1830 => $expand!(-218),
            1832 => $expand!(-216),
            1834 => $expand!(-214),
            1836 => $expand!(-212),
            1838 => $expand!(-210),
            1840 => $expand!(-208),
            1842 => $expand!(-206),
            1844 => $expand!(-204),
            1846 => $expand!(-202),
            1848 => $expand!(-200),
            1850 => $expand!(-198),
            1852 => $expand!(-196),
            1854 => $expand!(-194),
            1856 => $expand!(-192),
            1858 => $expand!(-190),
            1860 => $expand!(-188),
            1862 => $expand!(-186),
            1864 => $expand!(-184),
            1866 => $expand!(-182),
            1868 => $expand!(-180),
            1870 => $expand!(-178),
            1872 => $expand!(-176),
            1874 => $expand!(-174),
            1876 => $expand!(-172),
            1878 => $expand!(-170),
            1880 => $expand!(-168),
            1882 => $expand!(-166),
            1884 => $expand!(-164),
            1886 => $expand!(-162),
            1888 => $expand!(-160),
            1890 => $expand!(-158),
            1892 => $expand!(-156),
            1894 => $expand!(-154),
            1896 => $expand!(-152),
            1898 => $expand!(-150),
            1900 => $expand!(-148),
            1902 => $expand!(-146),
            1904 => $expand!(-144),
            1906 => $expand!(-142),
            1908 => $expand!(-140),
            1910 => $expand!(-138),
            1912 => $expand!(-136),
            1914 => $expand!(-134),
            1916 => $expand!(-132),
            1918 => $expand!(-130),
            1920 => $expand!(-128),
            1922 => $expand!(-126),
            1924 => $expand!(-124),
            1926 => $expand!(-122),
            1928 => $expand!(-120),
            1930 => $expand!(-118),
            1932 => $expand!(-116),
            1934 => $expand!(-114),
            1936 => $expand!(-112),
            1938 => $expand!(-110),
            1940 => $expand!(-108),
            1942 => $expand!(-106),
            1944 => $expand!(-104),
            1946 => $expand!(-102),
            1948 => $expand!(-100),
            1950 => $expand!(-98),
            1952 => $expand!(-96),
            1954 => $expand!(-94),
            1956 => $expand!(-92),
            1958 => $expand!(-90),
            1960 => $expand!(-88),
            1962 => $expand!(-86),
            1964 => $expand!(-84),
            1966 => $expand!(-82),
            1968 => $expand!(-80),
            1970 => $expand!(-78),
            1972 => $expand!(-76),
            1974 => $expand!(-74),
            1976 => $expand!(-72),
            1978 => $expand!(-70),
            1980 => $expand!(-68),
            1982 => $expand!(-66),
            1984 => $expand!(-64),
            1986 => $expand!(-62),
            1988 => $expand!(-60),
            1990 => $expand!(-58),
            1992 => $expand!(-56),
            1994 => $expand!(-54),
            1996 => $expand!(-52),
            1998 => $expand!(-50),
            2000 => $expand!(-48),
            2002 => $expand!(-46),
            2004 => $expand!(-44),
            2006 => $expand!(-42),
            2008 => $expand!(-40),
            2010 => $expand!(-38),
            2012 => $expand!(-36),
            2014 => $expand!(-34),
            2016 => $expand!(-32),
            2018 => $expand!(-30),
            2020 => $expand!(-28),
            2022 => $expand!(-26),
            2024 => $expand!(-24),
            2026 => $expand!(-22),
            2028 => $expand!(-20),
            2030 => $expand!(-18),
            2032 => $expand!(-16),
            2034 => $expand!(-14),
            2036 => $expand!(-12),
            2038 => $expand!(-10),
            2040 => $expand!(-8),
            2042 => $expand!(-6),
            2044 => $expand!(-4),
            2046 => $expand!(-2),
            _ => $expand!(1022),
        }
    };
}

//immediate value: -512:511
macro_rules! constify_imm_s10 {
    ($imm_s10:expr, $expand:ident) => {
        #[allow(overflowing_literals)]
        match ($imm_s10) & 0b11_1111_1111 {
            0 => $expand!(0),
            1 => $expand!(1),
            2 => $expand!(2),
            3 => $expand!(3),
            4 => $expand!(4),
            5 => $expand!(5),
            6 => $expand!(6),
            7 => $expand!(7),
            8 => $expand!(8),
            9 => $expand!(9),
            10 => $expand!(10),
            11 => $expand!(11),
            12 => $expand!(12),
            13 => $expand!(13),
            14 => $expand!(14),
            15 => $expand!(15),
            16 => $expand!(16),
            17 => $expand!(17),
            18 => $expand!(18),
            19 => $expand!(19),
            20 => $expand!(20),
            21 => $expand!(21),
            22 => $expand!(22),
            23 => $expand!(23),
            24 => $expand!(24),
            25 => $expand!(25),
            26 => $expand!(26),
            27 => $expand!(27),
            28 => $expand!(28),
            29 => $expand!(29),
            30 => $expand!(30),
            31 => $expand!(31),
            32 => $expand!(32),
            33 => $expand!(33),
            34 => $expand!(34),
            35 => $expand!(35),
            36 => $expand!(36),
            37 => $expand!(37),
            38 => $expand!(38),
            39 => $expand!(39),
            40 => $expand!(40),
            41 => $expand!(41),
            42 => $expand!(42),
            43 => $expand!(43),
            44 => $expand!(44),
            45 => $expand!(45),
            46 => $expand!(46),
            47 => $expand!(47),
            48 => $expand!(48),
            49 => $expand!(49),
            50 => $expand!(50),
            51 => $expand!(51),
            52 => $expand!(52),
            53 => $expand!(53),
            54 => $expand!(54),
            55 => $expand!(55),
            56 => $expand!(56),
            57 => $expand!(57),
            58 => $expand!(58),
            59 => $expand!(59),
            60 => $expand!(60),
            61 => $expand!(61),
            62 => $expand!(62),
            63 => $expand!(63),
            64 => $expand!(64),
            65 => $expand!(65),
            66 => $expand!(66),
            67 => $expand!(67),
            68 => $expand!(68),
            69 => $expand!(69),
            70 => $expand!(70),
            71 => $expand!(71),
            72 => $expand!(72),
            73 => $expand!(73),
            74 => $expand!(74),
            75 => $expand!(75),
            76 => $expand!(76),
            77 => $expand!(77),
            78 => $expand!(78),
            79 => $expand!(79),
            80 => $expand!(80),
            81 => $expand!(81),
            82 => $expand!(82),
            83 => $expand!(83),
            84 => $expand!(84),
            85 => $expand!(85),
            86 => $expand!(86),
            87 => $expand!(87),
            88 => $expand!(88),
            89 => $expand!(89),
            90 => $expand!(90),
            91 => $expand!(91),
            92 => $expand!(92),
            93 => $expand!(93),
            94 => $expand!(94),
            95 => $expand!(95),
            96 => $expand!(96),
            97 => $expand!(97),
            98 => $expand!(98),
            99 => $expand!(99),
            100 => $expand!(100),
            101 => $expand!(101),
            102 => $expand!(102),
            103 => $expand!(103),
            104 => $expand!(104),
            105 => $expand!(105),
            106 => $expand!(106),
            107 => $expand!(107),
            108 => $expand!(108),
            109 => $expand!(109),
            110 => $expand!(110),
            111 => $expand!(111),
            112 => $expand!(112),
            113 => $expand!(113),
            114 => $expand!(114),
            115 => $expand!(115),
            116 => $expand!(116),
            117 => $expand!(117),
            118 => $expand!(118),
            119 => $expand!(119),
            120 => $expand!(120),
            121 => $expand!(121),
            122 => $expand!(122),
            123 => $expand!(123),
            124 => $expand!(124),
            125 => $expand!(125),
            126 => $expand!(126),
            127 => $expand!(127),
            128 => $expand!(128),
            129 => $expand!(129),
            130 => $expand!(130),
            131 => $expand!(131),
            132 => $expand!(132),
            133 => $expand!(133),
            134 => $expand!(134),
            135 => $expand!(135),
            136 => $expand!(136),
            137 => $expand!(137),
            138 => $expand!(138),
            139 => $expand!(139),
            140 => $expand!(140),
            141 => $expand!(141),
            142 => $expand!(142),
            143 => $expand!(143),
            144 => $expand!(144),
            145 => $expand!(145),
            146 => $expand!(146),
            147 => $expand!(147),
            148 => $expand!(148),
            149 => $expand!(149),
            150 => $expand!(150),
            151 => $expand!(151),
            152 => $expand!(152),
            153 => $expand!(153),
            154 => $expand!(154),
            155 => $expand!(155),
            156 => $expand!(156),
            157 => $expand!(157),
            158 => $expand!(158),
            159 => $expand!(159),
            160 => $expand!(160),
            161 => $expand!(161),
            162 => $expand!(162),
            163 => $expand!(163),
            164 => $expand!(164),
            165 => $expand!(165),
            166 => $expand!(166),
            167 => $expand!(167),
            168 => $expand!(168),
            169 => $expand!(169),
            170 => $expand!(170),
            171 => $expand!(171),
            172 => $expand!(172),
            173 => $expand!(173),
            174 => $expand!(174),
            175 => $expand!(175),
            176 => $expand!(176),
            177 => $expand!(177),
            178 => $expand!(178),
            179 => $expand!(179),
            180 => $expand!(180),
            181 => $expand!(181),
            182 => $expand!(182),
            183 => $expand!(183),
            184 => $expand!(184),
            185 => $expand!(185),
            186 => $expand!(186),
            187 => $expand!(187),
            188 => $expand!(188),
            189 => $expand!(189),
            190 => $expand!(190),
            191 => $expand!(191),
            192 => $expand!(192),
            193 => $expand!(193),
            194 => $expand!(194),
            195 => $expand!(195),
            196 => $expand!(196),
            197 => $expand!(197),
            198 => $expand!(198),
            199 => $expand!(199),
            200 => $expand!(200),
            201 => $expand!(201),
            202 => $expand!(202),
            203 => $expand!(203),
            204 => $expand!(204),
            205 => $expand!(205),
            206 => $expand!(206),
            207 => $expand!(207),
            208 => $expand!(208),
            209 => $expand!(209),
            210 => $expand!(210),
            211 => $expand!(211),
            212 => $expand!(212),
            213 => $expand!(213),
            214 => $expand!(214),
            215 => $expand!(215),
            216 => $expand!(216),
            217 => $expand!(217),
            218 => $expand!(218),
            219 => $expand!(219),
            220 => $expand!(220),
            221 => $expand!(221),
            222 => $expand!(222),
            223 => $expand!(223),
            224 => $expand!(224),
            225 => $expand!(225),
            226 => $expand!(226),
            227 => $expand!(227),
            228 => $expand!(228),
            229 => $expand!(229),
            230 => $expand!(230),
            231 => $expand!(231),
            232 => $expand!(232),
            233 => $expand!(233),
            234 => $expand!(234),
            235 => $expand!(235),
            236 => $expand!(236),
            237 => $expand!(237),
            238 => $expand!(238),
            239 => $expand!(239),
            240 => $expand!(240),
            241 => $expand!(241),
            242 => $expand!(242),
            243 => $expand!(243),
            244 => $expand!(244),
            245 => $expand!(245),
            246 => $expand!(246),
            247 => $expand!(247),
            248 => $expand!(248),
            249 => $expand!(249),
            250 => $expand!(250),
            251 => $expand!(251),
            252 => $expand!(252),
            253 => $expand!(253),
            254 => $expand!(254),
            255 => $expand!(255),
            256 => $expand!(256),
            257 => $expand!(257),
            258 => $expand!(258),
            259 => $expand!(259),
            260 => $expand!(260),
            261 => $expand!(261),
            262 => $expand!(262),
            263 => $expand!(263),
            264 => $expand!(264),
            265 => $expand!(265),
            266 => $expand!(266),
            267 => $expand!(267),
            268 => $expand!(268),
            269 => $expand!(269),
            270 => $expand!(270),
            271 => $expand!(271),
            272 => $expand!(272),
            273 => $expand!(273),
            274 => $expand!(274),
            275 => $expand!(275),
            276 => $expand!(276),
            277 => $expand!(277),
            278 => $expand!(278),
            279 => $expand!(279),
            280 => $expand!(280),
            281 => $expand!(281),
            282 => $expand!(282),
            283 => $expand!(283),
            284 => $expand!(284),
            285 => $expand!(285),
            286 => $expand!(286),
            287 => $expand!(287),
            288 => $expand!(288),
            289 => $expand!(289),
            290 => $expand!(290),
            291 => $expand!(291),
            292 => $expand!(292),
            293 => $expand!(293),
            294 => $expand!(294),
            295 => $expand!(295),
            296 => $expand!(296),
            297 => $expand!(297),
            298 => $expand!(298),
            299 => $expand!(299),
            300 => $expand!(300),
            301 => $expand!(301),
            302 => $expand!(302),
            303 => $expand!(303),
            304 => $expand!(304),
            305 => $expand!(305),
            306 => $expand!(306),
            307 => $expand!(307),
            308 => $expand!(308),
            309 => $expand!(309),
            310 => $expand!(310),
            311 => $expand!(311),
            312 => $expand!(312),
            313 => $expand!(313),
            314 => $expand!(314),
            315 => $expand!(315),
            316 => $expand!(316),
            317 => $expand!(317),
            318 => $expand!(318),
            319 => $expand!(319),
            320 => $expand!(320),
            321 => $expand!(321),
            322 => $expand!(322),
            323 => $expand!(323),
            324 => $expand!(324),
            325 => $expand!(325),
            326 => $expand!(326),
            327 => $expand!(327),
            328 => $expand!(328),
            329 => $expand!(329),
            330 => $expand!(330),
            331 => $expand!(331),
            332 => $expand!(332),
            333 => $expand!(333),
            334 => $expand!(334),
            335 => $expand!(335),
            336 => $expand!(336),
            337 => $expand!(337),
            338 => $expand!(338),
            339 => $expand!(339),
            340 => $expand!(340),
            341 => $expand!(341),
            342 => $expand!(342),
            343 => $expand!(343),
            344 => $expand!(344),
            345 => $expand!(345),
            346 => $expand!(346),
            347 => $expand!(347),
            348 => $expand!(348),
            349 => $expand!(349),
            350 => $expand!(350),
            351 => $expand!(351),
            352 => $expand!(352),
            353 => $expand!(353),
            354 => $expand!(354),
            355 => $expand!(355),
            356 => $expand!(356),
            357 => $expand!(357),
            358 => $expand!(358),
            359 => $expand!(359),
            360 => $expand!(360),
            361 => $expand!(361),
            362 => $expand!(362),
            363 => $expand!(363),
            364 => $expand!(364),
            365 => $expand!(365),
            366 => $expand!(366),
            367 => $expand!(367),
            368 => $expand!(368),
            369 => $expand!(369),
            370 => $expand!(370),
            371 => $expand!(371),
            372 => $expand!(372),
            373 => $expand!(373),
            374 => $expand!(374),
            375 => $expand!(375),
            376 => $expand!(376),
            377 => $expand!(377),
            378 => $expand!(378),
            379 => $expand!(379),
            380 => $expand!(380),
            381 => $expand!(381),
            382 => $expand!(382),
            383 => $expand!(383),
            384 => $expand!(384),
            385 => $expand!(385),
            386 => $expand!(386),
            387 => $expand!(387),
            388 => $expand!(388),
            389 => $expand!(389),
            390 => $expand!(390),
            391 => $expand!(391),
            392 => $expand!(392),
            393 => $expand!(393),
            394 => $expand!(394),
            395 => $expand!(395),
            396 => $expand!(396),
            397 => $expand!(397),
            398 => $expand!(398),
            399 => $expand!(399),
            400 => $expand!(400),
            401 => $expand!(401),
            402 => $expand!(402),
            403 => $expand!(403),
            404 => $expand!(404),
            405 => $expand!(405),
            406 => $expand!(406),
            407 => $expand!(407),
            408 => $expand!(408),
            409 => $expand!(409),
            410 => $expand!(410),
            411 => $expand!(411),
            412 => $expand!(412),
            413 => $expand!(413),
            414 => $expand!(414),
            415 => $expand!(415),
            416 => $expand!(416),
            417 => $expand!(417),
            418 => $expand!(418),
            419 => $expand!(419),
            420 => $expand!(420),
            421 => $expand!(421),
            422 => $expand!(422),
            423 => $expand!(423),
            424 => $expand!(424),
            425 => $expand!(425),
            426 => $expand!(426),
            427 => $expand!(427),
            428 => $expand!(428),
            429 => $expand!(429),
            430 => $expand!(430),
            431 => $expand!(431),
            432 => $expand!(432),
            433 => $expand!(433),
            434 => $expand!(434),
            435 => $expand!(435),
            436 => $expand!(436),
            437 => $expand!(437),
            438 => $expand!(438),
            439 => $expand!(439),
            440 => $expand!(440),
            441 => $expand!(441),
            442 => $expand!(442),
            443 => $expand!(443),
            444 => $expand!(444),
            445 => $expand!(445),
            446 => $expand!(446),
            447 => $expand!(447),
            448 => $expand!(448),
            449 => $expand!(449),
            450 => $expand!(450),
            451 => $expand!(451),
            452 => $expand!(452),
            453 => $expand!(453),
            454 => $expand!(454),
            455 => $expand!(455),
            456 => $expand!(456),
            457 => $expand!(457),
            458 => $expand!(458),
            459 => $expand!(459),
            460 => $expand!(460),
            461 => $expand!(461),
            462 => $expand!(462),
            463 => $expand!(463),
            464 => $expand!(464),
            465 => $expand!(465),
            466 => $expand!(466),
            467 => $expand!(467),
            468 => $expand!(468),
            469 => $expand!(469),
            470 => $expand!(470),
            471 => $expand!(471),
            472 => $expand!(472),
            473 => $expand!(473),
            474 => $expand!(474),
            475 => $expand!(475),
            476 => $expand!(476),
            477 => $expand!(477),
            478 => $expand!(478),
            479 => $expand!(479),
            480 => $expand!(480),
            481 => $expand!(481),
            482 => $expand!(482),
            483 => $expand!(483),
            484 => $expand!(484),
            485 => $expand!(485),
            486 => $expand!(486),
            487 => $expand!(487),
            488 => $expand!(488),
            489 => $expand!(489),
            490 => $expand!(490),
            491 => $expand!(491),
            492 => $expand!(492),
            493 => $expand!(493),
            494 => $expand!(494),
            495 => $expand!(495),
            496 => $expand!(496),
            497 => $expand!(497),
            498 => $expand!(498),
            499 => $expand!(499),
            500 => $expand!(500),
            501 => $expand!(501),
            502 => $expand!(502),
            503 => $expand!(503),
            504 => $expand!(504),
            505 => $expand!(505),
            506 => $expand!(506),
            507 => $expand!(507),
            508 => $expand!(508),
            509 => $expand!(509),
            510 => $expand!(510),
            512 => $expand!(-512),
            513 => $expand!(-511),
            514 => $expand!(-510),
            515 => $expand!(-509),
            516 => $expand!(-508),
            517 => $expand!(-507),
            518 => $expand!(-506),
            519 => $expand!(-505),
            520 => $expand!(-504),
            521 => $expand!(-503),
            522 => $expand!(-502),
            523 => $expand!(-501),
            524 => $expand!(-500),
            525 => $expand!(-499),
            526 => $expand!(-498),
            527 => $expand!(-497),
            528 => $expand!(-496),
            529 => $expand!(-495),
            530 => $expand!(-494),
            531 => $expand!(-493),
            532 => $expand!(-492),
            533 => $expand!(-491),
            534 => $expand!(-490),
            535 => $expand!(-489),
            536 => $expand!(-488),
            537 => $expand!(-487),
            538 => $expand!(-486),
            539 => $expand!(-485),
            540 => $expand!(-484),
            541 => $expand!(-483),
            542 => $expand!(-482),
            543 => $expand!(-481),
            544 => $expand!(-480),
            545 => $expand!(-479),
            546 => $expand!(-478),
            547 => $expand!(-477),
            548 => $expand!(-476),
            549 => $expand!(-475),
            550 => $expand!(-474),
            551 => $expand!(-473),
            552 => $expand!(-472),
            553 => $expand!(-471),
            554 => $expand!(-470),
            555 => $expand!(-469),
            556 => $expand!(-468),
            557 => $expand!(-467),
            558 => $expand!(-466),
            559 => $expand!(-465),
            560 => $expand!(-464),
            561 => $expand!(-463),
            562 => $expand!(-462),
            563 => $expand!(-461),
            564 => $expand!(-460),
            565 => $expand!(-459),
            566 => $expand!(-458),
            567 => $expand!(-457),
            568 => $expand!(-456),
            569 => $expand!(-455),
            570 => $expand!(-454),
            571 => $expand!(-453),
            572 => $expand!(-452),
            573 => $expand!(-451),
            574 => $expand!(-450),
            575 => $expand!(-449),
            576 => $expand!(-448),
            577 => $expand!(-447),
            578 => $expand!(-446),
            579 => $expand!(-445),
            580 => $expand!(-444),
            581 => $expand!(-443),
            582 => $expand!(-442),
            583 => $expand!(-441),
            584 => $expand!(-440),
            585 => $expand!(-439),
            586 => $expand!(-438),
            587 => $expand!(-437),
            588 => $expand!(-436),
            589 => $expand!(-435),
            590 => $expand!(-434),
            591 => $expand!(-433),
            592 => $expand!(-432),
            593 => $expand!(-431),
            594 => $expand!(-430),
            595 => $expand!(-429),
            596 => $expand!(-428),
            597 => $expand!(-427),
            598 => $expand!(-426),
            599 => $expand!(-425),
            600 => $expand!(-424),
            601 => $expand!(-423),
            602 => $expand!(-422),
            603 => $expand!(-421),
            604 => $expand!(-420),
            605 => $expand!(-419),
            606 => $expand!(-418),
            607 => $expand!(-417),
            608 => $expand!(-416),
            609 => $expand!(-415),
            610 => $expand!(-414),
            611 => $expand!(-413),
            612 => $expand!(-412),
            613 => $expand!(-411),
            614 => $expand!(-410),
            615 => $expand!(-409),
            616 => $expand!(-408),
            617 => $expand!(-407),
            618 => $expand!(-406),
            619 => $expand!(-405),
            620 => $expand!(-404),
            621 => $expand!(-403),
            622 => $expand!(-402),
            623 => $expand!(-401),
            624 => $expand!(-400),
            625 => $expand!(-399),
            626 => $expand!(-398),
            627 => $expand!(-397),
            628 => $expand!(-396),
            629 => $expand!(-395),
            630 => $expand!(-394),
            631 => $expand!(-393),
            632 => $expand!(-392),
            633 => $expand!(-391),
            634 => $expand!(-390),
            635 => $expand!(-389),
            636 => $expand!(-388),
            637 => $expand!(-387),
            638 => $expand!(-386),
            639 => $expand!(-385),
            640 => $expand!(-384),
            641 => $expand!(-383),
            642 => $expand!(-382),
            643 => $expand!(-381),
            644 => $expand!(-380),
            645 => $expand!(-379),
            646 => $expand!(-378),
            647 => $expand!(-377),
            648 => $expand!(-376),
            649 => $expand!(-375),
            650 => $expand!(-374),
            651 => $expand!(-373),
            652 => $expand!(-372),
            653 => $expand!(-371),
            654 => $expand!(-370),
            655 => $expand!(-369),
            656 => $expand!(-368),
            657 => $expand!(-367),
            658 => $expand!(-366),
            659 => $expand!(-365),
            660 => $expand!(-364),
            661 => $expand!(-363),
            662 => $expand!(-362),
            663 => $expand!(-361),
            664 => $expand!(-360),
            665 => $expand!(-359),
            666 => $expand!(-358),
            667 => $expand!(-357),
            668 => $expand!(-356),
            669 => $expand!(-355),
            670 => $expand!(-354),
            671 => $expand!(-353),
            672 => $expand!(-352),
            673 => $expand!(-351),
            674 => $expand!(-350),
            675 => $expand!(-349),
            676 => $expand!(-348),
            677 => $expand!(-347),
            678 => $expand!(-346),
            679 => $expand!(-345),
            680 => $expand!(-344),
            681 => $expand!(-343),
            682 => $expand!(-342),
            683 => $expand!(-341),
            684 => $expand!(-340),
            685 => $expand!(-339),
            686 => $expand!(-338),
            687 => $expand!(-337),
            688 => $expand!(-336),
            689 => $expand!(-335),
            690 => $expand!(-334),
            691 => $expand!(-333),
            692 => $expand!(-332),
            693 => $expand!(-331),
            694 => $expand!(-330),
            695 => $expand!(-329),
            696 => $expand!(-328),
            697 => $expand!(-327),
            698 => $expand!(-326),
            699 => $expand!(-325),
            700 => $expand!(-324),
            701 => $expand!(-323),
            702 => $expand!(-322),
            703 => $expand!(-321),
            704 => $expand!(-320),
            705 => $expand!(-319),
            706 => $expand!(-318),
            707 => $expand!(-317),
            708 => $expand!(-316),
            709 => $expand!(-315),
            710 => $expand!(-314),
            711 => $expand!(-313),
            712 => $expand!(-312),
            713 => $expand!(-311),
            714 => $expand!(-310),
            715 => $expand!(-309),
            716 => $expand!(-308),
            717 => $expand!(-307),
            718 => $expand!(-306),
            719 => $expand!(-305),
            720 => $expand!(-304),
            721 => $expand!(-303),
            722 => $expand!(-302),
            723 => $expand!(-301),
            724 => $expand!(-300),
            725 => $expand!(-299),
            726 => $expand!(-298),
            727 => $expand!(-297),
            728 => $expand!(-296),
            729 => $expand!(-295),
            730 => $expand!(-294),
            731 => $expand!(-293),
            732 => $expand!(-292),
            733 => $expand!(-291),
            734 => $expand!(-290),
            735 => $expand!(-289),
            736 => $expand!(-288),
            737 => $expand!(-287),
            738 => $expand!(-286),
            739 => $expand!(-285),
            740 => $expand!(-284),
            741 => $expand!(-283),
            742 => $expand!(-282),
            743 => $expand!(-281),
            744 => $expand!(-280),
            745 => $expand!(-279),
            746 => $expand!(-278),
            747 => $expand!(-277),
            748 => $expand!(-276),
            749 => $expand!(-275),
            750 => $expand!(-274),
            751 => $expand!(-273),
            752 => $expand!(-272),
            753 => $expand!(-271),
            754 => $expand!(-270),
            755 => $expand!(-269),
            756 => $expand!(-268),
            757 => $expand!(-267),
            758 => $expand!(-266),
            759 => $expand!(-265),
            760 => $expand!(-264),
            761 => $expand!(-263),
            762 => $expand!(-262),
            763 => $expand!(-261),
            764 => $expand!(-260),
            765 => $expand!(-259),
            766 => $expand!(-258),
            767 => $expand!(-257),
            768 => $expand!(-256),
            769 => $expand!(-255),
            770 => $expand!(-254),
            771 => $expand!(-253),
            772 => $expand!(-252),
            773 => $expand!(-251),
            774 => $expand!(-250),
            775 => $expand!(-249),
            776 => $expand!(-248),
            777 => $expand!(-247),
            778 => $expand!(-246),
            779 => $expand!(-245),
            780 => $expand!(-244),
            781 => $expand!(-243),
            782 => $expand!(-242),
            783 => $expand!(-241),
            784 => $expand!(-240),
            785 => $expand!(-239),
            786 => $expand!(-238),
            787 => $expand!(-237),
            788 => $expand!(-236),
            789 => $expand!(-235),
            790 => $expand!(-234),
            791 => $expand!(-233),
            792 => $expand!(-232),
            793 => $expand!(-231),
            794 => $expand!(-230),
            795 => $expand!(-229),
            796 => $expand!(-228),
            797 => $expand!(-227),
            798 => $expand!(-226),
            799 => $expand!(-225),
            800 => $expand!(-224),
            801 => $expand!(-223),
            802 => $expand!(-222),
            803 => $expand!(-221),
            804 => $expand!(-220),
            805 => $expand!(-219),
            806 => $expand!(-218),
            807 => $expand!(-217),
            808 => $expand!(-216),
            809 => $expand!(-215),
            810 => $expand!(-214),
            811 => $expand!(-213),
            812 => $expand!(-212),
            813 => $expand!(-211),
            814 => $expand!(-210),
            815 => $expand!(-209),
            816 => $expand!(-208),
            817 => $expand!(-207),
            818 => $expand!(-206),
            819 => $expand!(-205),
            820 => $expand!(-204),
            821 => $expand!(-203),
            822 => $expand!(-202),
            823 => $expand!(-201),
            824 => $expand!(-200),
            825 => $expand!(-199),
            826 => $expand!(-198),
            827 => $expand!(-197),
            828 => $expand!(-196),
            829 => $expand!(-195),
            830 => $expand!(-194),
            831 => $expand!(-193),
            832 => $expand!(-192),
            833 => $expand!(-191),
            834 => $expand!(-190),
            835 => $expand!(-189),
            836 => $expand!(-188),
            837 => $expand!(-187),
            838 => $expand!(-186),
            839 => $expand!(-185),
            840 => $expand!(-184),
            841 => $expand!(-183),
            842 => $expand!(-182),
            843 => $expand!(-181),
            844 => $expand!(-180),
            845 => $expand!(-179),
            846 => $expand!(-178),
            847 => $expand!(-177),
            848 => $expand!(-176),
            849 => $expand!(-175),
            850 => $expand!(-174),
            851 => $expand!(-173),
            852 => $expand!(-172),
            853 => $expand!(-171),
            854 => $expand!(-170),
            855 => $expand!(-169),
            856 => $expand!(-168),
            857 => $expand!(-167),
            858 => $expand!(-166),
            859 => $expand!(-165),
            860 => $expand!(-164),
            861 => $expand!(-163),
            862 => $expand!(-162),
            863 => $expand!(-161),
            864 => $expand!(-160),
            865 => $expand!(-159),
            866 => $expand!(-158),
            867 => $expand!(-157),
            868 => $expand!(-156),
            869 => $expand!(-155),
            870 => $expand!(-154),
            871 => $expand!(-153),
            872 => $expand!(-152),
            873 => $expand!(-151),
            874 => $expand!(-150),
            875 => $expand!(-149),
            876 => $expand!(-148),
            877 => $expand!(-147),
            878 => $expand!(-146),
            879 => $expand!(-145),
            880 => $expand!(-144),
            881 => $expand!(-143),
            882 => $expand!(-142),
            883 => $expand!(-141),
            884 => $expand!(-140),
            885 => $expand!(-139),
            886 => $expand!(-138),
            887 => $expand!(-137),
            888 => $expand!(-136),
            889 => $expand!(-135),
            890 => $expand!(-134),
            891 => $expand!(-133),
            892 => $expand!(-132),
            893 => $expand!(-131),
            894 => $expand!(-130),
            895 => $expand!(-129),
            896 => $expand!(-128),
            897 => $expand!(-127),
            898 => $expand!(-126),
            899 => $expand!(-125),
            900 => $expand!(-124),
            901 => $expand!(-123),
            902 => $expand!(-122),
            903 => $expand!(-121),
            904 => $expand!(-120),
            905 => $expand!(-119),
            906 => $expand!(-118),
            907 => $expand!(-117),
            908 => $expand!(-116),
            909 => $expand!(-115),
            910 => $expand!(-114),
            911 => $expand!(-113),
            912 => $expand!(-112),
            913 => $expand!(-111),
            914 => $expand!(-110),
            915 => $expand!(-109),
            916 => $expand!(-108),
            917 => $expand!(-107),
            918 => $expand!(-106),
            919 => $expand!(-105),
            920 => $expand!(-104),
            921 => $expand!(-103),
            922 => $expand!(-102),
            923 => $expand!(-101),
            924 => $expand!(-100),
            925 => $expand!(-99),
            926 => $expand!(-98),
            927 => $expand!(-97),
            928 => $expand!(-96),
            929 => $expand!(-95),
            930 => $expand!(-94),
            931 => $expand!(-93),
            932 => $expand!(-92),
            933 => $expand!(-91),
            934 => $expand!(-90),
            935 => $expand!(-89),
            936 => $expand!(-88),
            937 => $expand!(-87),
            938 => $expand!(-86),
            939 => $expand!(-85),
            940 => $expand!(-84),
            941 => $expand!(-83),
            942 => $expand!(-82),
            943 => $expand!(-81),
            944 => $expand!(-80),
            945 => $expand!(-79),
            946 => $expand!(-78),
            947 => $expand!(-77),
            948 => $expand!(-76),
            949 => $expand!(-75),
            950 => $expand!(-74),
            951 => $expand!(-73),
            952 => $expand!(-72),
            953 => $expand!(-71),
            954 => $expand!(-70),
            955 => $expand!(-69),
            956 => $expand!(-68),
            957 => $expand!(-67),
            958 => $expand!(-66),
            959 => $expand!(-65),
            960 => $expand!(-64),
            961 => $expand!(-63),
            962 => $expand!(-62),
            963 => $expand!(-61),
            964 => $expand!(-60),
            965 => $expand!(-59),
            966 => $expand!(-58),
            967 => $expand!(-57),
            968 => $expand!(-56),
            969 => $expand!(-55),
            970 => $expand!(-54),
            971 => $expand!(-53),
            972 => $expand!(-52),
            973 => $expand!(-51),
            974 => $expand!(-50),
            975 => $expand!(-49),
            976 => $expand!(-48),
            977 => $expand!(-47),
            978 => $expand!(-46),
            979 => $expand!(-45),
            980 => $expand!(-44),
            981 => $expand!(-43),
            982 => $expand!(-42),
            983 => $expand!(-41),
            984 => $expand!(-40),
            985 => $expand!(-39),
            986 => $expand!(-38),
            987 => $expand!(-37),
            988 => $expand!(-36),
            989 => $expand!(-35),
            990 => $expand!(-34),
            991 => $expand!(-33),
            992 => $expand!(-32),
            993 => $expand!(-31),
            994 => $expand!(-30),
            995 => $expand!(-29),
            996 => $expand!(-28),
            997 => $expand!(-27),
            998 => $expand!(-26),
            999 => $expand!(-25),
            1000 => $expand!(-24),
            1001 => $expand!(-23),
            1002 => $expand!(-22),
            1003 => $expand!(-21),
            1004 => $expand!(-20),
            1005 => $expand!(-19),
            1006 => $expand!(-18),
            1007 => $expand!(-17),
            1008 => $expand!(-16),
            1009 => $expand!(-15),
            1010 => $expand!(-14),
            1011 => $expand!(-13),
            1012 => $expand!(-12),
            1013 => $expand!(-11),
            1014 => $expand!(-10),
            1015 => $expand!(-9),
            1016 => $expand!(-8),
            1017 => $expand!(-7),
            1018 => $expand!(-6),
            1019 => $expand!(-5),
            1020 => $expand!(-4),
            1021 => $expand!(-3),
            1022 => $expand!(-2),
            1023 => $expand!(-1),
            _ => $expand!(511),
        }
    };
}

//immediate value: 0:63
macro_rules! constify_imm6 {
    ($imm8:expr, $expand:ident) => {
        #[allow(overflowing_literals)]
        match ($imm8) & 0b11_1111 {
            0 => $expand!(0),
            1 => $expand!(1),
            2 => $expand!(2),
            3 => $expand!(3),
            4 => $expand!(4),
            5 => $expand!(5),
            6 => $expand!(6),
            7 => $expand!(7),
            8 => $expand!(8),
            9 => $expand!(9),
            10 => $expand!(10),
            11 => $expand!(11),
            12 => $expand!(12),
            13 => $expand!(13),
            14 => $expand!(14),
            15 => $expand!(15),
            16 => $expand!(16),
            17 => $expand!(17),
            18 => $expand!(18),
            19 => $expand!(19),
            20 => $expand!(20),
            21 => $expand!(21),
            22 => $expand!(22),
            23 => $expand!(23),
            24 => $expand!(24),
            25 => $expand!(25),
            26 => $expand!(26),
            27 => $expand!(27),
            28 => $expand!(28),
            29 => $expand!(29),
            30 => $expand!(30),
            31 => $expand!(31),
            32 => $expand!(32),
            33 => $expand!(33),
            34 => $expand!(34),
            35 => $expand!(35),
            36 => $expand!(36),
            37 => $expand!(37),
            38 => $expand!(38),
            39 => $expand!(39),
            40 => $expand!(40),
            41 => $expand!(41),
            42 => $expand!(42),
            43 => $expand!(43),
            44 => $expand!(44),
            45 => $expand!(45),
            46 => $expand!(46),
            47 => $expand!(47),
            48 => $expand!(48),
            49 => $expand!(49),
            50 => $expand!(50),
            51 => $expand!(51),
            52 => $expand!(52),
            53 => $expand!(53),
            54 => $expand!(54),
            55 => $expand!(55),
            56 => $expand!(56),
            57 => $expand!(57),
            58 => $expand!(58),
            59 => $expand!(59),
            60 => $expand!(60),
            61 => $expand!(61),
            62 => $expand!(62),
            _ => $expand!(63),
        }
    };
}

//immediate value: 0:31
macro_rules! constify_imm5 {
    ($imm8:expr, $expand:ident) => {
        #[allow(overflowing_literals)]
        match ($imm8) & 0b1_1111 {
            0 => $expand!(0),
            1 => $expand!(1),
            2 => $expand!(2),
            3 => $expand!(3),
            4 => $expand!(4),
            5 => $expand!(5),
            6 => $expand!(6),
            7 => $expand!(7),
            8 => $expand!(8),
            9 => $expand!(9),
            10 => $expand!(10),
            11 => $expand!(11),
            12 => $expand!(12),
            13 => $expand!(13),
            14 => $expand!(14),
            15 => $expand!(15),
            16 => $expand!(16),
            17 => $expand!(17),
            18 => $expand!(18),
            19 => $expand!(19),
            20 => $expand!(20),
            21 => $expand!(21),
            22 => $expand!(22),
            23 => $expand!(23),
            24 => $expand!(24),
            25 => $expand!(25),
            26 => $expand!(26),
            27 => $expand!(27),
            28 => $expand!(28),
            29 => $expand!(29),
            30 => $expand!(30),
            _ => $expand!(31),
        }
    };
}

//immediate value: -16:15
macro_rules! constify_imm_s5 {
    ($imm8:expr, $expand:ident) => {
        #[allow(overflowing_literals)]
        match ($imm8) & 0b1_1111 {
            0 => $expand!(0),
            1 => $expand!(1),
            2 => $expand!(2),
            3 => $expand!(3),
            4 => $expand!(4),
            5 => $expand!(5),
            6 => $expand!(6),
            7 => $expand!(7),
            8 => $expand!(8),
            9 => $expand!(9),
            10 => $expand!(10),
            11 => $expand!(11),
            12 => $expand!(12),
            13 => $expand!(13),
            14 => $expand!(14),
            16 => $expand!(-16),
            17 => $expand!(-15),
            18 => $expand!(-14),
            19 => $expand!(-13),
            20 => $expand!(-12),
            21 => $expand!(-11),
            22 => $expand!(-10),
            23 => $expand!(-9),
            24 => $expand!(-8),
            25 => $expand!(-7),
            26 => $expand!(-6),
            27 => $expand!(-5),
            28 => $expand!(-4),
            29 => $expand!(-3),
            30 => $expand!(-2),
            31 => $expand!(-1),
            _ => $expand!(15),
        }
    };
}

//immediate value: 0:15
macro_rules! constify_imm4 {
    ($imm8:expr, $expand:ident) => {
        #[allow(overflowing_literals)]
        match ($imm8) & 0b1111 {
            0 => $expand!(0),
            1 => $expand!(1),
            2 => $expand!(2),
            3 => $expand!(3),
            4 => $expand!(4),
            5 => $expand!(5),
            6 => $expand!(6),
            7 => $expand!(7),
            8 => $expand!(8),
            9 => $expand!(9),
            10 => $expand!(10),
            11 => $expand!(11),
            12 => $expand!(12),
            13 => $expand!(13),
            14 => $expand!(14),
            _ => $expand!(15),
        }
    };
}

//immediate value: 0:7
macro_rules! constify_imm3 {
    ($imm8:expr, $expand:ident) => {
        #[allow(overflowing_literals)]
        match ($imm8) & 0b111 {
            0 => $expand!(0),
            1 => $expand!(1),
            2 => $expand!(2),
            3 => $expand!(3),
            4 => $expand!(4),
            5 => $expand!(5),
            6 => $expand!(6),
            _ => $expand!(7),
        }
    };
}

//immediate value: 0:3
macro_rules! constify_imm2 {
    ($imm8:expr, $expand:ident) => {
        #[allow(overflowing_literals)]
        match ($imm8) & 0b11 {
            0 => $expand!(0),
            1 => $expand!(1),
            2 => $expand!(2),
            _ => $expand!(3),
        }
    };
}

//immediate value: 0:1
macro_rules! constify_imm1 {
    ($imm8:expr, $expand:ident) => {
        #[allow(overflowing_literals)]
        match ($imm8) & 0b1 {
            0 => $expand!(0),
            _ => $expand!(1),
        }
    };
}
